• ベストアンサー

Excelの関数について教えてください!

エクセルの関数について教えてください! Excelで複数の条件に合った値を返したいのですが、やり方がわかりません。 教えてください。 例えば、Aのセルに6、Bのセルに15と入力します。 条件は、 0<A≦5 のとき 0<B≦10・・・・・(1) 10<B≦20・・・・(2) 20<B≦30・・・・(3) 5<A≦10のとき 0<B≦10・・・・・(4) 10<B≦20・・・・(5) 20<B≦30・・・・(6) この場合に、条件に一致している(5)という値を返す方法を教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

こんばんは。 単純に条件を重ね合わせていくだけです。 C1に =IF(AND(0<A1,A1<=10,0<B1,B1<=30),3*(5<A1)+(10<B1)+(20<B1)+1,"") 結果表示を「5」じゃなくどーしても「(5)」としたいなら、簡易にはセルの書式設定の表示形式のユーザー定義で (0) としておきます。 まぁ数式対応で =TEXT(AND(0<A1,A1<=10,0<B1,B1<=30)*(3*(5<A1)+(10<B1)+(20<B1)+1),"(0);;;") とかしておいてもOKです。

shinji_5
質問者

お礼

すぐに回答がほしかったので、一番早く回答していただいた方をベストアンサーとさせて頂きました。 助かりました。ありがとうございました!

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

Aに10を超えるものがなく、Bに30を超えるものがないなら、 単に、 ="("&(A1>5)*3+(A1>10)+(B1>0)+(B1>10)+(B1>20)&")" でいいでしょう。 超えるものがあるときどうするかは質問にないが、あればそれはそれなりの式を作れます。 条件が増えても簡単に式を作れるでしょう。

shinji_5
質問者

お礼

とても助かりました。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

式や方法は多少複雑になりますが条件が多くなっても対応できる方法です。 初めにA列およびB列にデータが入力されお求めの答えをC列に表示させるとします。 そこで条件となるデータを例えばE列からM列までに作成するとします。ただし、お示しの場合ではE列からH列までを使用することになります。 E列にはB列のデータの条件となるものでE2セルには0、E3セルには10、E4セルには20、E5セルには30と入力します。 F1セルからH1セルにはA列の条件となるものでF1セルに0、G1セルに5、H1セルに10と入力します。 答えとなるデータとしてF2セルには(1),F3セルには(2)、F4セルには(3)と入力します。カッコつきの数値は-1のように表示されてしまいますので '(1) のようにシングルコーテーションマークを付けて入力します。 G2セルには(4)、G3セルには(5)、G4セルには(6)と入力します。 その上でC1セルには次の式を入力して下方にドラッグコピーすればよいでしょう。 =IF(COUNT(A1:B1)<>2,"",INDEX(F$2:M$10,MATCH(B1-0.001,E$2:E$10,1),MATCH(A1-0.001,F$1:M$1,1))) 上の式ではMATCH関数に引数の1を使っています。これは検査値で指定した値以下の最大値が検索されることになります。このため、B1セルの検査値から0.001を引いた値を検査することにしています。そうしない場合には例えばB1が10の時はE3セルの行が対象になってしまいます。実際にはE2セルの行が対象になることが必要ですのでB1の値から0.001を引いて使うことにします。0.001の数値は0.1でも構いませんがB1セルのデータが0.1未満の場合にはエラーの表示となります。

shinji_5
質問者

お礼

詳しい説明ありがとうございました! なかなか難しいですね。