[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『IF関数について』(NB)
=IF($C$5-15>=E3,"",IF(AND($C$5-14>=E3,$C$5-7>=E3),"あ", IF(AND($C$5>=E3,$C$5-7>=E3),"い",IF(AND($C$5>=E3,$C$5-7<E3),"う", IF(AND($C$5<=E3,$C$5+7>=E3),"え",IF(AND($C$5+7<=E3,$C$5+14>=E3),"お", IF(AND($C$5+14<=E3,$C$5+21>=E3),"か",""))))))) ^^^^ ^^^^ ←エラーがでる。 今↑の数式を使用していて、↑の数式だと問題無く計算が出来ます。 しかし、『$C$5』の部分を『TODAY()』に変更して使用しようとすると、 ^^^^の部分を変えた時のみエラーが出てしまいます。 IF関数のネストではないと思うのですが、原因が分かりません。
IF関数にネストの限界があるのではなくて、「関数のネストは7レベルまで」なんです。 (みやほりん)(-_∂)b
>「関数のネストは7レベルまで」なんです。 というのはどういった事なのでしょうか? (NB)
【関数内にネストした関数について】 関数を、他の関数の引数として使用する
ネストした関数 │ ┌───────┐ │ │ ┌─────┐ ┌───┐ =IF(AVERAGE(F2:F5)>50,SUM(G2:G5),0)
横レス すみません… ↑の図を描いてみたいだけでした(*^_^*)
(Ohagi)
なんとなく分かったような気がするのですが、でも、 なぜ^^^^の部分に入力した時のみエラーが出るのでしょうか? 他の所でもエラーが出そうなのですが… (NB)
TODAY() ~~これがネストされるからです^^; (ROUGE)
ROUGEさん、フォローおおきに。 >IF関数のネストではないと思うのですが、 この文章からは、「IF関数にネスト制限がある」と認識していると受け取れます。 実際には「あらゆる関数についてネスト制限がある」と認識してください。 今回の場合はご自身の数式を後ろから見ていきましょう。 $C$5+14<=E3,$C$5+21>=E3),"か",""))))))) ↑ 右から数えてこの括弧は8個目です。 この状態がネストレベル7(関数の引数として別の関数が7つ入れ子になっている)です。 右側から見て行って「(」が現れるまでに8つ「)」があるところまでがIF関数に限らず限界です。 条件式を整理すればネストは少なくても済むように思えますが、 条件式で釈然としない部分があり、現状では容易に整理できません。 AND($C$5-14>=E3,$C$5-7>=E3) は $C$5-14>=E3 だけでもよくないか。 $C$5>=E3 を判定した後に、$C$5<=E3 を判定しているが、$C$5=E3 は ホントウはどちらに該当するか。 $C$5+7、$C$5+14の判定についても同じ。 とりあえず、同じ動作を期待するだけなら、下記でネストをひとつ減らせ、 $C$5の変わりにTODAY関数を使えるでしょう。 =IF($C$5-15>=E3,"", IF(AND($C$5-14>=E3,$C$5-7>=E3),"あ", IF($C$5>=E3,IF($C$5-7>=E3,"い","う"), IF(AND($C$5<=E3,$C$5+7>=E3),"え", IF(AND($C$5+7<=E3,$C$5+14>=E3),"お", IF(AND($C$5+14<=E3,$C$5+21>=E3),"か","")))))) (みやほりん)(-_∂)b
リスト作成でVLOOKUP関数でできそうな A B 1 =$C$5-15 ’ ’は空白にする為 2 =$C$5-14 あ 3
=VLOOKUP(E1,$A$1:$A$10, ・・・ TODAY()に変更しても (8まん)
範囲外でエラーが出る場合は IFで除外すれば =if(範囲外,"",VLOOKUP(E1,$A$1:$A$10, ・・・ ))
みなさん、ありがとうございます。 無事に解決できました。ここは凄い勉強になります。 (NB)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.