[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ifand関数を続けるとエラーが出る理由が知りたいです。』(よしおか)
すみません、お手数ですが
教えていただけますか。
AとBの条件が揃えば、C。DとEの条件が揃えば、Dという式を組みたいと考えています。
組み立てた式は以下です。
=IF(AND(K7="総合",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T","ゾーン?U"))),IF(AND(K7="事務",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T","ゾーン?U")))
#valueとなります。
文字列を確認しましたが、文字列はありません。
IF(AND(K7="総合"・・・とIF(AND(K7="事務"・・・の2つの式と捉えた場合、組み合わせてはいけないのでしょうか。
2つの式をそれぞれ単独式とすると式は成立します。分岐が間違っているのではないかとも思ってますが、解決できませんでした。
お手数ですが、どなたかわかる方教えていただけますでしょうか。
よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:unknown >
単純にいうと 二つのIF関数をカンマでつないでいるだけですよね これではエラーになります
前後の違いは
K7="総合" と K7="事務"
だけのようですから ORで判断して
=IF(AND(OR(K7="総合",K7="事務"),BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T","ゾーン?U")))
でいいのでは?
(渡辺ひかる) 2019/08/30(金) 18:05
回答ありがとうございます。
なるほど!理解できました。助かりました。
すみません、前後の違いが、 K7="総合" と K7="事務"だけではなく参照先も異なる場合は
どのように考えたらよろしいでしょうか。同じように、#valueとなってしまいます。。。
=IF(AND(K7="総合",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T","ゾーン?U"))),IF(AND(K7="事務",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,3,FALSE),"ゾーン?T","ゾーン?U")))
(よしおか) 2019/09/02(月) 07:48
=IF(AND(K7="総合",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T","ゾーン?U"))),IF(AND(K7="事務",(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,2,FALSE)))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,3,FALSE),"ゾーン?T","ゾーン?U")))
(よしおか) 2019/09/02(月) 07:50
>同じように、#valueとなってしまいます。。。
だからIF関数を2つカンマでつないだだけではエラーになりますって
質問者さんの数式では、それぞれのIF関数で何らかの結果が出ます。 つまり、2つのIF関数でそれぞれの結果が出るので、2つの値が返ることになります。
質問者さんが実際にどうしたいのか整理することが必要です
数式を整理すると 下記のようになります
IF(AND(条件A,条件B)=TRUE,"a",IF(条件C,"b",IF(条件D,"c","d")))
IF(AND(条件E,条件F)=TRUE,"a",IF(条件G,"b",IF(条件H,"c","d")))
ここで前者がすべてFALSEで"d"になる場合に、後者のIF関数の評価をすればいいので
IF(AND(条件A,条件B)=TRUE,"a",IF(条件C,"b",IF(条件D,"c",IF(AND(条件E,条件F)=TRUE,"a",IF(条件G,"b",IF(条件H,"c","d"))))))
とすればいいのではないですか?
つまりこんな感じです
=IF(AND(K7="総合",BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,2,FALSE))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$4:$E$10,3,FALSE),"ゾーン?T",IF(AND(K7="事務",BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,2,FALSE))=TRUE,"下限以下",IF(BF7>=VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,4,FALSE),"オーバー",IF(BF7<VLOOKUP(CA7,'ゾーン(計算用)'!$B$14:$E$17,3,FALSE),"ゾーン?T","ゾーン?U"))))))
対象セル範囲に名前を付けて 数式を見やすくすることも必要かと思います
(渡辺ひかる) 2019/09/02(月) 09:53
同じこと聞いてしまいました。
お手数をおかけしました。
ご丁寧にありがとうございました。
おかげさまで、計算ができました!
大変助かりました。
(よしおか) 2019/09/02(月) 11:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.