• 締切済み

iif関数で3つ以上条件を抽出したい場合

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))))) わかりにくくて申し訳ありませんが何卒よろしくお願いいたします。

みんなの回答

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.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)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

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

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

合っていますが、貼り付けられたものをテキストで確認すると、 >IIf([病気]. [ICD10小分類コード]='J44',1 のところで、 >[病気]. [ICD10小分類コード] のように離れて表示されます。この部分を [病気].[ICD10小分類コード] のようにくっつければエラーは出ないと思いますが。 一度、テキストに貼り付け確認してみてはいかがでしょう。 IIfの使い方も以下のような方法もあります。 疾患: IIf([病気].[ICD10小分類コード] In ("J42","J43","J44","J45","J46"),1,0)

回答No.3

AccessとExcelとの差は2つです。 1、Find関数->Instr関数。 2、1、0への置換。1を乗じるのではなく絶対値を取る。 True---Access -1、Excel 1 False---0 Instr関数の例は以下のPRTSCを。 PS、質問内容に疑義が・・・。 通常、IIF関数を使う場合、条件によって取得する値が異なると思いますが・・・。

回答No.2

■訂正 "|" & [病気].[ICD10小分類コード] & "|"   ↓ [病気].[ICD10小分類コード] 多分、前後に"|"を付加する必要はないかも・・・。 ■補足 =(FIND("A", "ABC")>0)*1 =IIF(FIND("A", "ABC")>0,1,0) 上も下も同じです。 上は論理演算式、下はIIF関数を使っているだけです。 ※EXCELは使ったことも学んだこともないので・・・。こんなところが精一杯です。

minminde55
質問者

お礼

すいません!実はこれAccessでやろうとしているのですが、また構文は変わるのでしょうか? ちなみに、大小関係ではなくて、この抽出した条件を当てはまる患者には1または当てはまらない場合は0で表示されるようにしたいみたいです。。。 せっかく教えていただいたのに申し訳ありません。 でも即ご回答いただきましてありがとうございました。 また何かあればよろしくお願いいたします。

回答No.1

=(FIND("|" & [病気].[ICD10小分類コード] & "|","|J41|J42|J43|J44|J45|")>0)*1 Find関数の戻り値が0より大きいかという倫理式の値に1を乗じれば、 1=見つかった 0=見つからなかった でOKなのでは・・・。

minminde55
質問者

お礼

即ご返信いただきまして、本当にありがとうございました。 どうやら質問が大小関係はなかったみたいです。 せっかく教えていただいたのに申し訳ありません。 もう一度やってみます。 また何かあればよろしくお願いいたします。