• ベストアンサー

IF関数の選択肢を増やす方法について

 例・・・A1セルに4、B4セルに3、C5セルに2が入力されると                                    D1セルに5が表示。      A1セルに3、B4セルに2、C5セルにAかBが入力されると                                    D1セルに6が表示。                         ・                         ・                         ・                        続く。 D1セルに、 =IF(AND(A1=4,B4=3,C5=2),5,IF(AND(A1=3,B4=2,OR(C5="A",C5="B")),6,・・・・  のような感じで増やしていたのですが、IFが7つで限界?のようなのですが、 何か方法はありますか?もしあれば教えてください・・・。 エクセル2003です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

最もわかりやすく簡単な方法は次のような式にすることでしょう。&でIF関数の式をつないで使用しますので、いくらでもIFを増やして使うことができます。 =IF(AND(A1=4,B4=3,C5=2),5,"")&IF(AND(A1=3,B4=2,OR(C5="A",C5="B")),6,"")&・・・・・ ところで解答1さんの方法で =VLOOKUP(A1&B4&C5,Sheet2!A:B,2,FALSE) の式を使われていますがエラーが出るのはA1&B4&C5の値がシート2のA列にない場合です。このため次のような式にすることで解消されます。 =IF(COUNTIF(Sheet2!A:A,A1&B4&C5)=0,"",VLOOKUP(A1&B4&C5,Sheet2!A:B,2,FALSE))

otoichihr
質問者

お礼

もう一度やってみました。 今度は数字ではなく文字で試してみました。そしたらうまくいきました!!! でもやっぱり数字だと反応しません・・・・・・・。 なにか方法がありますか??

otoichihr
質問者

補足

すみません・・・・・。 やっぱり#N/Aのエラーがでてしまいます。 どうしてもこの方法みたいにデータを別シートで管理したいです。 もう一度おねがいします。本当にスミマセン・・・・・・・。

その他の回答 (3)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

>D1セルに、 >=IF(AND(A1=4,B4=3,C5=2),5,IF(AND(A1=3,B4=2,OR(C5="A",C5="B")),6,・・・・ > のような感じで増やしていたのですが、IFが7つで限界?のようなのですが IFのネストは7が限度です(EXCEL2003までは) ネストしなければいいのでは >=IF(AND(A1=4,B4=3,C5=2),5,0)+IF(AND(A1=3,B4=2,OR(C5="A",C5="B")),6,0)+・・・

otoichihr
質問者

お礼

こういう方法があるんですね!! 勉強になりました!! この方法も試してみます。

回答No.2

>A1セルに4、B4セルに3、C5セルに2が入力されると ようは、入力された数字で違う数字を設定したいという事ですよね。 >=IF(AND(A1=4,B4=3,C5=2),5,IF(AND は初心者が陥りやすい書き方ですね。いろんなやり方があるので、一概にはどれがいいとはいえませんが、とりあえず列挙しておきます。 ・マクロ(VBA)で計算させCase、Whileなどで分岐する。 ・マトリックスを作成して(表として別に用意する).参照させる。A1に3であれば、Z1に1とするA1に4では、Z2に1とする。他はその下の行にする。あとはセルに何か入力されているかどうかANDとかXORをとって、判断する。 ・あなたの例で、計算法則を導き出し方程式を作る。A1+A2+A3=3ならば5を表示とか。(マトリックスを作るのと同じ) ・etc

otoichihr
質問者

お礼

いろいろな方法があるんですね!! 参考にさせていただきます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

この様な場合は別途対応表を作成します。 例えば、別シート(Sheet2)に  A  B 432 5 32A 6 32B 6 ・・・と準備します。 D1セルにはVlookup関数を使います。 =VLOOKUP(A1&B4&C5,Sheet2!A:B,2,FALSE) として、対応表から結果となるB列を表示させます。

otoichihr
質問者

補足

さっそくの回答ありがとうございます。 この方法でいこうと思い試したのですが、エラーがでてしまいます。 なぜですかね??

関連するQ&A