• 締切済み

IF構文で、「正しくありません」が表示されます

エクセル初心者です。 考えて、下記のような式を入力したのですが、どうしても「入力した式が正しくありません」と表示されて、入力できません。。 どこが間違っているのか、もう1時間ほど悩んでいるのですが、全く思いつきません。。。 どこが間違っているのか、どのように修正すればよいのか、ご指摘いただけないでしょうか。 =IF(C23<100000000,0,IF(C23<200000000,0.01,IF(C23<300000000,0.011,IF(C23<400000000,0.012,IF(C23<500000000,0.013,IF(C23<600000000,0.014,if(C23<700000000,0.015,if(C23<800000000,0.016,IF(C23<900000000,0.017,IF(C23<1000000000,0.018,IF(C23<1100000000,0.019,0.02)))))))))))) また後学のため、なぜエラーになるのか教えていただければ幸いです。 どうぞよろしくお願いいたします。

みんなの回答

  • 11zep
  • ベストアンサー率36% (48/133)
回答No.5

No1です。 Excel2007では")"を1つはずせばエラーが出ませんでした。 他の方の書き込みをみてExcel2003で試したところエラーになりました。 バージョンの違いで今回のエラーの出方が違うようです。 失礼しました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

IF関数のネストは8個までなのでエラーです。 一例です。 =LOOKUP(INT(C23/10^8),{0,1,2,3,4,5,6,7,8,9,10,11},{0,0.01,0.011,0.012,0.013,0.014,0.015,0.016,0.017,0.018,0.019,0.02})

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>")"をひとつはずしてみたのですが、同じエラーがでてしまい。。 他に何か考えられる可能性ありましたら、教えていただけないでしょうか。 提示された数式でエラーが出るのは、すでに回答があるように最後のカッコが1つ多いためですが、最後のカッコを外してもエラーが出るなら、ご使用のエクセルのバージョンが2007よりも前のバージョンではないでしょうか? この場合は、数式のネストの制限にかかりますので(7レベルまで)数式に工夫が必要となります。 今回のケースでしたらLOOKUP関数で配列定数を使用した以下のような数式にするのがお勧めです。 =LOOKUP(C23,{0,100000000,200000000,300000000,400000000,500000000,600000000,700000000,800000000,900000000,1000000000,1100000000},{0,0.01,0.011,0.012,0.013,0.014,0.015,0.016,0.017,0.018,0.019,0.02})

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

if文は8個までしかネスト出来ません。 ざっと見たところ、12個あるので多すぎます。 規則性のあるところを計算式に置換する手があります。 =IF(C23< 100000000,0, IF(C23< 200000000,0.01, IF(C23>=1100000000,0.02, 0.01+(C23/100000000000-0.002) ))) ※実際には1行で書いてください あるいは、こういう物はテーブルを作っておき、vlookupを使うものでしょう。 (画像参照)

  • 11zep
  • ベストアンサー率36% (48/133)
回答No.1

最後の")"が1つ多いのでエラーになっています。 理由は、")"で閉じないと文法エラーになるから?ですかね?

sun3happy
質問者

補足

こんにちは。お世話になります。ご回答ありがとうございます。 ")"をひとつはずしてみたのですが、同じエラーがでてしまい。。 他に何か考えられる可能性ありましたら、教えていただけないでしょうか。 どうぞよろしくお願いいたします。

関連するQ&A