- ベストアンサー
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です。よろしくお願いします。
- みんなの回答 (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))
その他の回答 (3)
- sige1701
- ベストアンサー率28% (74/260)
>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)+・・・
お礼
こういう方法があるんですね!! 勉強になりました!! この方法も試してみます。
- bakakyatap
- ベストアンサー率38% (115/299)
>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
お礼
いろいろな方法があるんですね!! 参考にさせていただきます。
- hallo-2007
- ベストアンサー率41% (888/2115)
この様な場合は別途対応表を作成します。 例えば、別シート(Sheet2)に A B 432 5 32A 6 32B 6 ・・・と準備します。 D1セルにはVlookup関数を使います。 =VLOOKUP(A1&B4&C5,Sheet2!A:B,2,FALSE) として、対応表から結果となるB列を表示させます。
補足
さっそくの回答ありがとうございます。 この方法でいこうと思い試したのですが、エラーがでてしまいます。 なぜですかね??
お礼
もう一度やってみました。 今度は数字ではなく文字で試してみました。そしたらうまくいきました!!! でもやっぱり数字だと反応しません・・・・・・・。 なにか方法がありますか??
補足
すみません・・・・・。 やっぱり#N/Aのエラーがでてしまいます。 どうしてもこの方法みたいにデータを別シートで管理したいです。 もう一度おねがいします。本当にスミマセン・・・・・・・。