• ベストアンサー

エクセルの関数で2つの条件に合うものを探す。

エクセルの関数で下記のことをしたいのです。 表(1) T>=0.6  0.6>T>=0.3  0.3>T>=0.15 U<2   A     B       C 2<=U<3  B     B-C     D 3<=U<4  C      C      D 4<=U<6  D     C-D     D 6<=U    E      D      D 別の表(2)に U   T         1.5  0.3         0.9  0.8             5.9  0.13         ・   ・         ・   ・ とあります。 そのためUの値とTの値で表(1)のAからE値を抽出し別の表にAからEを表示したいのです。エクセルの関数(IF,AND,LOOKUP等)を試してみたのですがうまくいきません。できるだけエクセルの関数のみで、よい方法があれば教えてください。よろしくおねがいします。     

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

  • ベストアンサー
noname#204879
noname#204879
回答No.4

  A  B   C   D  E   F   G  H 1 U   T  対応値   U\T 0.15 0.3 0.6 2 1.5  0.3 B       0 C   B  A 3 0.9  0.8 A       2 D   B-C B 4 5.9 0.13  #N/A     3 D   C  C 5  …  …  …     4 D   C-D D 6  …  …  …     6 D   D  E C2: =HLOOKUP(B2,F$1:H$6,MATCH(A2,E$1:E$6))

koko09_200
質問者

お礼

ありがとうございます。 HLOOKUPを使ってもできるのですね。 皆さんのを見ていて表の作り方次第でできることがわかってきました。 もっといろいろ方向を変えて考える事が必要なんですね。

その他の回答 (3)

回答No.3

表の作り方がポイントです。こういうときのセオリーは「検査値以 下の最大値とマッチする」「検査範囲は昇順にしておく」ですね。 で、表1を画像のように組み替えます。-999は想定される値の下限 より小さい負の数なら何でもいいです。B列はエラーや空欄対策の ためで、実は=""という空文字列が入っています。肝心の数式は、 J2: =vlookup(G2,$A$2:$E$6,match(H2,$A$1:$E$1,1),1) これだけ。

koko09_200
質問者

お礼

ありがとうございます。 表の作り方を変えるだけで、vlookupとmatchで短くできるのですね。 表の作り方が1つのキーになることがわかりました。早速表から作り直して見ます。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

=INDEX($B$2:$E$6,IF(U1<2,1,IF(U1<3,2,IF(U1<4,3,IF(U1<6,4,5)))),IF(T1<0.15,4,IF(T1<0.3,3,IF(T1<0.6,2,1)))) でいかがでしょう。

koko09_200
質問者

お礼

ありがとうございます。 INDEXとIFでも作れるのですね。 最初、IFを使って作ってみたのですが引数を超えて作れなかったのですが、使い方次第ですね。もっと勉強してみます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例ですが・・・ ↓に画像をアップしてみました。 U・Tの値が ○以上△未満という条件なので 勝手に表1のTの値を昇順に並び替えさせてもらっています。 (○を超えて、△以下という条件なら降順に並び替えます) 表1は実際は水色部分と A~Dが入っている表だけでOKなのですが 理解しやすいように未満の列・行も作っています。 表2のC2セルに =IF(COUNTBLANK(A2:B2)>0,"",INDEX($H$4:$J$8,MATCH(A2,$E$4:$E$8,1),MATCH(B2,$H$1:$J$1,1))) という数式を入れて、オートフィルで下へコピーすると 画像のような感じになります。 尚、質問にではTの値が0.15以上になっていますので U=5.9 T=0.13 の場合はエラーになっています。 以上、参考になれば幸いですが 他に良い方法があれば読み流してくださいね。m(__)m

koko09_200
質問者

お礼

ありがとうございます。 INDEXとMATCHは使ったことがなくて関数の本を読んでも、これに使えると思わなかったです。早速試してみます。

関連するQ&A