• ベストアンサー

【Excel-関数】複数条件に一致する値抽出

Vlookupやsumifs、if&andのネストでもうまくいかないので、ご質問させていただきました。どなたかお力になっていただけるとありがたいです。 まず、このような「商品マスター」があります。 商品名  サイズ下限(mm)  サイズ上限(mm)  金額(円) abc       5           5.9         100 abc       6           6.9         200 abc       7           7.9         300 def        5           5.9         400 def        6           6.9         500 def        7           7.9         600 説明:abcという商品で薄さが5mm~5.9mmは100。 6mm~6.9だと200。 金額は”商品名”そして”サイズ”(薄さ)によって決まります。 そして問題の「売上表」 商品名  サイズ  金額 def     5.2    400 ←ここの「400」を数式で自動的に出したい abc     6.5    200 金額部分を出すには、 商品が一致、サイズで指定した値の「以上」や「以下」の判断をさせなければいけないので、複数条件になるかと思います。 オートフィルタだったら簡単なんですが、別の表に商品名とサイズを入力したら、金額が出てくるようにしたいので、やはり関数かなと、、。 以上、わかりにくい説明で申し訳ありませんが、よろしくお願い致します。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 ご例示の表サイズで商品名の有無チェック等は考慮していません。 =INDEX(D:D,SUMPRODUCT((A2:A7=商品名)*(B2:B7<=サイズ)*(C2:C7>=サイズ)*ROW(A2:A7)))

crystal52
質問者

お礼

すごい!スバラシイです。 SUMPRODUCTにこのようなやり方があったとは知りませんでした。 配列で単価×数量 のようなものだけだと思っていました。 indexとrowを組み合わせれば出来るんですね。 チャレンジしてみたら、出来ました。 ほんと感謝します。_(_^_)_ ありがとうございました。

その他の回答 (1)

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

こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のように表を作っておきます。 質問では○以上~△以下 ということですが、 表では○以上~△未満 ということになります。 尚、表のF・G列は不要なのですが、判りやすくするために敢えて残しておきます。 表のC2セルに =IF(COUNTBLANK(A2:B2)>0,"",INDEX($H$2:$I$6,MATCH(B2,$E$2:$E$6,1),MATCH(A2,$H$1:$I$1,0))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 何とか希望に近い形にならないでしょうか? 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

crystal52
質問者

お礼

お~これも素晴らしいですね。 こちらでも出来ました。 index関数とMATCH関数を使用し、マスターの表で指定した行列でぶつかる所を取りだすんですね~。すごい。 図付きでとてもわかりやすかったです。 行の数値を求めるMATCH関数の引数の検索の型に「1」を使うのもポイントですね。 ありがとうございました。 とても参考になりました。

関連するQ&A