• ベストアンサー

Excel 条件に対応する値を返したい!!

現在WINDOWS VISTA / Excel 2007を使用しています。 素人なのでよろしくお願いします。 エクセルでたとえば、セルA1が、10以上かつ、セルB1が、10以上かつ、セルC1が10以上ならば、「A」を返します。 セルA1が、10以上かつ、セルB1が、10以上かつ、セルC1が10以下ならば、「B」を返します。 という具合に8分類ぐらいにしたいのですが、どうもわかりません。 分かりやすく教えてくだされば幸いです。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

(A1<10)*2+(B1>=13)+(B1<13)*2+(B1>=11)*3+(B1<11)*4+(C1<15)+(C1<12)+(C1<9)-3 上記の式で A1>=10,B1>=13,C1>=15→0+4+0-3=1 A1>=10,B1>=13,C1<15→0+4+1-3=2 A1>=10,B1<13,C1>=12→0+5+1-3=3 A1>=10,B1<13,C1<12→0+5+2-3=4 A1<10,B1>=11,C1>=12→2+5+1-3=5 A1<10,B1>=11,C1<12→2+5+2-3=6 A1<10,B1<11,C1>=9→2+6+2-3=7 A1<10,B1<11,C1<9→2+6+3-3=8 となります。この結果を使ってABCDEFGHに振り分ければいいので =CHOOSE((A1<10)*2+(B1>=13)+(B1<13)*2+(B1>=11)*3+(B1<11)*4+(C1<15)+(C1<12)+(C1<9)-3,"A","B","C","D","E","F","G","H") または =CHAR(61+(A1<10)*2+(B1>=13)+(B1<13)*2+(B1>=11)*3+(B1<11)*4+(C1<15)+(C1<12)+(C1<9)) または MID("ABCDEFGH",(A1<10)*2+(B1>=13)+(B1<13)*2+(B1>=11)*3+(B1<11)*4+(C1<15)+(C1<12)+(C1<9)-3,1)

その他の回答 (4)

noname#77845
noname#77845
回答No.4

素直に、IF文にしてみました。 =IF(A1>=10,IF(B1>=13,IF(C1>=15,"A","B"),IF(C1>=12,"C","D")),IF(B1>=11,IF(C1>=12,"E","F"),IF(C1>=9,"G","H")))

noname#79209
noname#79209
回答No.3

> 説明が足りなかったので これは、「足りなかった」ではなく「違っていた」と言うべきです。 それと、この条件に合わないときはどうするんですか?

noname#79209
noname#79209
回答No.2

こんな方法もあります。 =MID(" HGFEDCBA",(A10>=10)*4+(B10>=10)*2+(C10>=10)*1+1+(COUNT(A10:C10)>2),1)

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

>8分類ぐらいにしたい 10以上を 「上」 、10未満なら 「下」 と表した表が下記 上 上 上 A 上 上 下 B 上 下 上 C 上 下 下 D 下 上 上 E 下 上 下 F 下 下 上 G 下 下 下 H 2進数の考え方を採用。 Aが「上」を満たせば数値4、満たさなければゼロ Bが「上」を満たせば数値2、満たさなければゼロ Cが「上」を満たせば数値1、満たさなければゼロ____これを,SUM関数で加算し(7~0)それに1を加え (1~8)の数値を算出。 Choose関数で、その数値に対応した 文字H~Aを表示。 COUNT(A1:C1)=3は、A~Cにデータが入力されているかを判定。 =IF(COUNT(A1:C1)=3,CHOOSE(SUM((A1>=10)*4,(B1>=10)*2,C1>=10,1),"H","G","F","E","D","C","B","A"),"")

ninarosa
質問者

補足

ご回答ありがとうございました。 申し訳ありません、説明が足りなかったので引き続きご教授願います。 やりたいことを漏れなく書きますと、 A1>=10 B1>=13 C1>=15 →A A1>=10 B1>=13 C1<15 →B A1>=10 B1<13 C1>=12 →C A1>=10 B1<13 C1<12 →D A1<10 B1>=11 C1>=12 →E A1<10 B1>=11 C1<12 →F A1<10 B1<11 C1>=9 →G A1<10 B1<11 C1<9 →H という具合でございます。 フローチャートのようになっていて、かつ数値も微妙に変わってきます。 これだと2進法の考えではできないように思いますが、どうでしょうか?

関連するQ&A