• 締切済み

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","")")")")  どこかおかしいと、漠然とわかりそうでわからなくて困ってます。どうかお願いします。

みんなの回答

回答No.6

=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)
回答No.5

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)
回答No.4

複雑な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)
回答No.3

=IF(K13<=20%,"D",IF(K13<=30%,"C",IF(K13<=50%,"B","A"))) これでどうでしょう。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.2

=IF(K13>50,"A",IF(30<K13,"B",IF(20<K13,"C",IF(0>K13,"D","")))) ifの両端を""で囲む必要はありません。

  • kiyama_t
  • ベストアンサー率25% (19/74)
回答No.1

ダブルクォーテーションで囲むのは文字列です。 IF文をダブルクォーテーションで囲んではいけません。 ですので、正解は以下の通りだと思います。 実験してないので、やってみてください。違ってたりして・・・ IF(K13>50%,"A",IF(50%>=K13,"B",IF30>=K13, "C",IF(20%>=K13,"D",""))))

関連するQ&A