- 締切済み
RE : エクセルの複雑なIF関数の組み方
エクセルで次の問題でIF関数を自分で組んでみましたが、エラーが出てしまいます。どなたか、間違いを教えていただけるでしょうか? 問 セルの『K13』表示されたパーセンテージを次の基準により表示しなさい。 20%以下 D 30%以下 C 50%以下 B 50%より大きい A 試案:=IF(K13>50%,"A","IF(50%>=K13,"B","IF30>=K13, "C","IF(20%>=K13,"D","")")")") どこかおかしいと、漠然とわかりそうでわからなくて困ってます。どうかお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- excel-jiten
- ベストアンサー率6% (1/16)
=IF(K13<20%+0.01%,"D",IF(K13<30%+0.01%,"C",IF(K13<50%+0.01%,"B","A"))) でいかがでしょうか。 "+0.01%"としてあるのは、エクセル内部の浮動点小数による誤差を埋めるものです。 ロジックは、問の順番通り、素直にIF文に書き落としただけです。
- imogasi
- ベストアンサー率27% (4737/17069)
IF文の何段にもなるネストをやめて、VLOOKUP関数を使うようにしたらどうです。 どこでもよいが、D1:E4などに 0 D 21 C 31 B 51 A と入れて A列に%数字が入るとして =VLOOKUP(A1,$D$1:$E$4,2,TRUE) B1に入れて下方向に複写する。 小数点以下の数は切り捨てられるということなので、都合が悪い場合もあろう、その場合は、100倍、1000倍した数字を表にしなければならない場合もあるかもしれないが。 >漠然とわかりそうでわからなくて困ってます 一番中の方のIF()単位から、数式バーからコピーして、別列に順次貼り付けて、=をつけて結果が正しいか、一歩一歩確かめるのが要領かと思う。
- yeslets
- ベストアンサー率31% (47/151)
複雑なIFを書く時は、一度紙に書いた方が早いかも・・・・ IF(50%超,"A",BかCかD) 上記の後半部分 IF(30%超,"B"、CかD) 上記の後半部分 IF(20%超,"C","D") のように。 ちなみに、このように書くと machiyanonさんの構文の最後のように、 ”)”)”) ということはありえないのがわかります。 もうひとつ、2番目のIFですが、 50%>=K13 では、50%以下のものがすべてBとなります。 なぜなら、2番目のIFに来る場合というのは、 すべて50%>=K13を満たすからです。 さらに、通常式を書く時は K13>30% のように、 セル番地 比較演算子 値 の順番に書きます(30%<K13でも結果は正しくなります)。 以下が正しい計算式です。 =IF(K13>50%,"A",IF(K13>30%,"B",IF(K13>20%,"C","D"))))
- kenbow22
- ベストアンサー率48% (135/276)
=IF(K13<=20%,"D",IF(K13<=30%,"C",IF(K13<=50%,"B","A"))) これでどうでしょう。
- OsieteG00
- ベストアンサー率35% (777/2173)
=IF(K13>50,"A",IF(30<K13,"B",IF(20<K13,"C",IF(0>K13,"D","")))) ifの両端を""で囲む必要はありません。
- kiyama_t
- ベストアンサー率25% (19/74)
ダブルクォーテーションで囲むのは文字列です。 IF文をダブルクォーテーションで囲んではいけません。 ですので、正解は以下の通りだと思います。 実験してないので、やってみてください。違ってたりして・・・ IF(K13>50%,"A",IF(50%>=K13,"B",IF30>=K13, "C",IF(20%>=K13,"D",""))))