エクセルの文字

エクセル VLOOKUPとHLOOKUPの組み合わせ

VLOOKUPとHLOOKUPを組み合わせて縦横で交わるデータを抽出したい場合、HLOOKUPは必要ありません。

上の表でいう、「鈴木」の「価格」を抽出したい場合、VLOOKUPとMATCHを組み合わせる方法が効率的です。

MATCH関数でデータの位置を数値化

MATCH関数は、「指定した条件に一致するデータがセル範囲の何番目にあるか」を求める関数です。構文は以下のとおり。

MATCH(検索値, 検査範囲, 照合の種類)

引数[検査範囲]の先頭のセルの位置を1として数え、引数[検索値]が何番目にあるかを数えます。完全一致のデータを検索する場合、引数[照合の種類]には「0」を指定します。

先ほどの表で「価格」が何番目にあるかを求めるには、以下のような関数式になります。これをVLOOKUP関数と組み合わせる手順を見てみましょう。

=MATCH(G3, B2:D2, 0)

結果は「2」。つまり、B2:D2の項目行の中で、価格は左から2番目ということです。

VLOOKUP関数と組み合わせる

VLOOKUP関数で「鈴木」の2列目を参照する場合は以下の式になります。

=VLOOKUP(G2, B2:D7, 2, FALSE)

このVLOOKUPの2列目を指定する部分に先ほど作ったMATCH関数を代入し、「鈴木」の「価格」を抽出します。

=VLOOKUP(H2, A2:E13, MATCH(H3,A2:E2,0), FALSE)

以上で完了です。が・・・office365を使っているなら、XLOOKUP関数を使った方が早いです。

XLOOKUPを使ってみよう

上記のような縦横で交わるデータを抽出したい場合、XLOOKUPがとても便利です。

エクセル図

上の表でいう、「鈴木」の「価格」を抽出したい場合、価格欄に

=XLOOKUP(F3,B3:B7,C3:C7)

と打ち込み、氏名に鈴木と入力すればOKです。

=XLOOKUP(検索値,検索範囲,戻り値の範囲)

という書式ですね。

ちなみに、

=XLOOKUP(F3,B3:B7,C3:C7,”見つかりません”)

としておくと、検索値の内容が見つからなかった場合、「見つかりません」と表示されます。

戻り値の範囲を変えるだけですぐに使えるので、非常にスピーディーですね!

しかし、XLOOKUPには重大な欠点があります。
それは、office365でしか使えない関数であるということ。
エクセルブックを個人パソコン内だけで使う、もしくはoffice365がインストールされている会社のパソコンだけで使う、というなら何の問題もありませんが、もしも色々なパソコンで使う資料を作る場合は非常に脆さを感じる関数です。

管理人画像

う~ん。XLOOKUPは便利ですが、私は出先で資料を修正したりすることも多いので、日常的に使っていたら、いつか致命的なミスを犯しそうです((((;´゚Д゚)))
個人としてはちょっと使いづらいですかね~。