プロが教える店舗&オフィスのセキュリティ対策術

iif関数を記載して、抽出条件を3つ以上入力するとエラーが出てしまいます。
小分類コードをまだ増やしたいのですが、これ以上記入するとエラーが出てしまうので
他の方法を探しています。choose関数は違いますか??

例)3つの病気までですと、疾患: IIf([病気].[ICD10小分類コード]='J42',1,IIf([病気].[ICD10小分類コード]='J43',1,IIf([病気].[ICD10小分類コード]='J44',1,0)))となります。

もしこの後に病気を5つに増やしたいとするとどう書けばよいでしょうか??
同じように,IIf([病気].[ICD10小分類コード]='J45',1,IIf([病気].[ICD10小分類コード]='J46',1と書いて、最後,0)))))→病気が5つあるので、かっこは5つ。と記載でしょうか?

下記であっていますか?? 
疾患: IIf([病気].[ICD10小分類コード]='J42',1,IIf([病気].[ICD10小分類コード]='J43',1,IIf([病気].[ICD10小分類コード]='J44',1,IIf([病気].[ICD10小分類コード]='J45',1,IIf([病気].[ICD10小分類コード]='J46',1,0)))))

わかりにくくて申し訳ありませんが何卒よろしくお願いいたします。

A 回答 (6件)

[病気].[ICD10小分類コード]の値が、'J42','J43','J44'


,'J45','J46'の時に 1、その他の場合に 0をセット

IIf(([病気].[ICD10小分類コード]='J42')
Or ([病気].[ICD10小分類コード]='J43')
Or ([病気].[ICD10小分類コード]='J44')
Or ([病気].[ICD10小分類コード]='J45')
Or ([病気].[ICD10小分類コード]='J46'), 1, 0)
    • good
    • 0

No4です。

投稿された日付をみたら、1週間くらい経っていたので
もしかしたら解決されたかもしれませんね。
    • good
    • 0

合っていますが、貼り付けられたものをテキストで確認すると、


>IIf([病気]. [ICD10小分類コード]='J44',1
のところで、
>[病気]. [ICD10小分類コード]
のように離れて表示されます。この部分を
[病気].[ICD10小分類コード]
のようにくっつければエラーは出ないと思いますが。
一度、テキストに貼り付け確認してみてはいかがでしょう。

IIfの使い方も以下のような方法もあります。
疾患: IIf([病気].[ICD10小分類コード] In ("J42","J43","J44","J45","J46"),1,0)
    • good
    • 1

AccessとExcelとの差は2つです。



1、Find関数->Instr関数。
2、1、0への置換。1を乗じるのではなく絶対値を取る。

True---Access -1、Excel 1
False---0

Instr関数の例は以下のPRTSCを。

PS、質問内容に疑義が・・・。

通常、IIF関数を使う場合、条件によって取得する値が異なると思いますが・・・。
「iif関数で3つ以上条件を抽出したい場合」の回答画像3
    • good
    • 0

■訂正



"|" & [病気].[ICD10小分類コード] & "|"

  ↓
[病気].[ICD10小分類コード]

多分、前後に"|"を付加する必要はないかも・・・。

■補足

=(FIND("A", "ABC")>0)*1
=IIF(FIND("A", "ABC")>0,1,0)

上も下も同じです。
上は論理演算式、下はIIF関数を使っているだけです。

※EXCELは使ったことも学んだこともないので・・・。こんなところが精一杯です。
    • good
    • 0
この回答へのお礼

すいません!実はこれAccessでやろうとしているのですが、また構文は変わるのでしょうか?

ちなみに、大小関係ではなくて、この抽出した条件を当てはまる患者には1または当てはまらない場合は0で表示されるようにしたいみたいです。。。

せっかく教えていただいたのに申し訳ありません。

でも即ご回答いただきましてありがとうございました。

また何かあればよろしくお願いいたします。

お礼日時:2013/08/22 08:40

=(FIND("|" & [病気].[ICD10小分類コード] & "|","|J41|J42|J43|J44|J45|")>0)*1



Find関数の戻り値が0より大きいかという倫理式の値に1を乗じれば、

1=見つかった
0=見つからなかった

でOKなのでは・・・。
    • good
    • 0
この回答へのお礼

即ご返信いただきまして、本当にありがとうございました。

どうやら質問が大小関係はなかったみたいです。

せっかく教えていただいたのに申し訳ありません。

もう一度やってみます。

また何かあればよろしくお願いいたします。

お礼日時:2013/08/22 08:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A