• 締切済み

エクセル関数、複数条件で答えをだしたいのですが、

セルA、B、C、D、にそれぞれ数値が入っています。 セルEに下記条件の答えをだしたいのですが IF関数もしくは他の方法で実現できるのでしょうか? Aが空白セルの場合、Eも空白、 B500以上、C50以上で”◎”、 B500以上、C50未満の場合”取寄せ” B200以上、C50以上で”○” B200以上、C50未満で”取寄せ” B1以上、C50以上で”△” B1以上、C50未満、D0で”残少” B0の場合は”要確認” どなたか、お知恵をお借りできれば幸いです。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>B1以上、C50未満、D0で”残少” という条件ですと、B501、C50未満、D0の場合においても”残少”と表示しなければならない事になりますが、それで宜しいのでしょうか?  それと、B1以上、C50未満の場合で尚且つDが0ではない場合に関しては、御質問文中には何も書かれていないのですが、どの様な表示とすれば良いのでしょうか?  取り敢えず仮の話として、B1以上、C50未満の場合で尚且つDが0ではない場合は"「B1以上、C50未満、D<>0」"と表示させるものとします。  それで2つの条件によって表示内容を変えるのでしたらINDEX関数とMACH関数を組み合わせて使えば良いと思います。 =IF(COUNT($A1,$B1,$C1,$D1)=4,IF($B1<1,"要確認",IF(AND($C1<50,$D1=0),"残少",INDEX({"「B1以上、C50未満、D<>0」","△";"取寄せ","○";"取寄せ","◎"},MATCH($B1,{1,200,500}),($C1>=50)+1))),"") 或いは =IF(COUNT($A1,$B1,$C1,$D1)=4,IF($B1<1,"要確認",IF(AND($C1<50,$D1=0),"残少",INDEX({"「B1以上、C50未満、D<>0」","取寄せ","取寄せ";"△","○","◎"},($C1>=50)+1,MATCH($B1,{1,200,500})))),"")

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>IF関数もしくは他の方法で実現できるのでしょうか? 少々面倒な論理ですね。 IF関数の多重入れ子でも可能ですがCHOOSE関数で一部簡素化した方が良さそうです。 E1=IF(A18="","",IF(C18<50,IF((B18>=200)+D18,IF(B18=0,"要確認","取寄せ"),"減少"),CHOOSE((B18<500)+(B18<200)+(B18>0),"◎","○","△")))

ura-3453
質問者

お礼

ありがとうございます。 すごく勉強になります。関数を使う機会が 多いので助かります。

回答No.1

  =if(A1="","",if(B1=0,"要確認",if(and(C1<50,D1=0)=0,"残少",if(C1<50,"取寄せ",if(B1>=500,"◎",if(B1>=200,"○",if(B1>=1,"△")))))))  

ura-3453
質問者

お礼

ありがとうございます。 おかげさまで、無事すすめることができました。 助かりました。

関連するQ&A