【Excel】縦・横2つの条件一致のデータを拾う

Excel_縦・横_2つの条件でデータを探す_1
この画像の運賃表を今回の例題としたいと思います。

運賃表・サイズ表等で↑の画像のような価格表は
よく見かけるのではないでしょうか?

「サイズが”3” ・ ”C”地区」の運送料金はいくらになるのか?

今回はこれを例題に解説していきます。
 

広告

縦・横2つの条件が一致(クロス)したデータを拾うには

Excel_縦・横_2つの条件でデータを探す_2

セル【H2】に

=VLOOKUP(E2,C6:H10,MATCH(C2,D5:H5,0)+1,0)

これで対象のデータが拾えたかと思います。

では一体、どのような構成・理屈でデータが拾えているかというと
以下の通り、ご説明いたします。
 

数式の構成・理屈

今回は以下の2つの関数を使用しています。

■ =VLOOKUP( 検索値, 範囲, 列番号, [検索方法] )
 参照先 ( “範囲” ) から ”検索値” に符合する値を探し
 指定した ”列番号” からデータを返す。
■ =MATCH( 検索値, 検索範囲, [照合の種類] )
 ”検索値” を “検索範囲” から探して
 “検索範囲” の左上を起点とした位置・数値を返す。

これら2つを組み合わせて
縦・横の2つの軸で、条件が一致したデータを
表から拾い上げてくれます。

Excel_縦・横_2つの条件でデータを探す_3
VLOOKUP関数の ”列番号” の項目をMATCH関数で返すような構成になっています

この数式の理屈は↓のように説明できると思います。

セル【E2】の値(条件1)を
セル【C6~H10】の範囲の
セル【D5:H5】からセル【C2】(という条件2)に合致する列番号から
完全一致するデータを抜き出す

文字で説明するとこんな感じでしょうか?

③では「MATCH関数」で左・上を基準として、
検索値(セル【C2】)が何列目にあるか?を算出して、
〇列目の、”〇”の数値を返す、ようになっています。

この例題では「 ”C” 地区」が条件なので3列目になります。
 

数式内での「+1」は、なぜ?

Excel_縦・横_2つの条件でデータを探す_4
VLOOKUP関数内(赤枠内)の1列目と、MATCH関数内(青枠内)の1列目にズレがある為です。

例題内の「 ”C” 地区」は、MATCH関数上は3列目にあたります。

が、VLOOKUP関数内ではC列からスタートして1列目なので
MATCH関数で戻り値に「+1」をして、合致します。

これは↑の画像をご覧頂くと、一発で理解できるかと思います。

以上になります。
実際の業務上で、お役に立てる事があれば幸いです。

広告