【Excel】縦・横2つの条件一致のデータを拾う
運賃表・サイズ表等で↑の画像のような価格表は
よく見かけるのではないでしょうか?
「サイズが”3” ・ ”C”地区」の運送料金はいくらになるのか?
今回はこれを例題に解説していきます。
縦・横2つの条件が一致(クロス)したデータを拾うには
セル【H2】に
=VLOOKUP(E2,C6:H10,MATCH(C2,D5:H5,0)+1,0)
これで対象のデータが拾えたかと思います。
では一体、どのような構成・理屈でデータが拾えているかというと
以下の通り、ご説明いたします。
数式の構成・理屈
今回は以下の2つの関数を使用しています。
■ =VLOOKUP( 検索値, 範囲, 列番号, [検索方法] )
参照先 ( “範囲” ) から ”検索値” に符合する値を探し
指定した ”列番号” からデータを返す。
■ =MATCH( 検索値, 検索範囲, [照合の種類] )
”検索値” を “検索範囲” から探して
“検索範囲” の左上を起点とした位置・数値を返す。
これら2つを組み合わせて
縦・横の2つの軸で、条件が一致したデータを
表から拾い上げてくれます。
この数式の理屈は↓のように説明できると思います。
① セル【E2】の値(条件1)を
② セル【C6~H10】の範囲の
③ セル【D5:H5】からセル【C2】(という条件2)に合致する列番号から
④ 完全一致するデータを抜き出す
文字で説明するとこんな感じでしょうか?
③では「MATCH関数」で左・上を基準として、
検索値(セル【C2】)が何列目にあるか?を算出して、
〇列目の、”〇”の数値を返す、ようになっています。
この例題では「 ”C” 地区」が条件なので3列目になります。
数式内での「+1」は、なぜ?
例題内の「 ”C” 地区」は、MATCH関数上は3列目にあたります。
が、VLOOKUP関数内ではC列からスタートして1列目なので
MATCH関数で戻り値に「+1」をして、合致します。
これは↑の画像をご覧頂くと、一発で理解できるかと思います。
以上になります。
実際の業務上で、お役に立てる事があれば幸いです。