この記事ではVLOOKUPの列番号を指定する引数にMATCH関数を使う方法を紹介します。
実際に以下のようなデータで、VLOOKUP関数とMATCH関数を組み合わせて、利用者IDに対応する利用者名、役職CDを取得してみましょう。
結論から言うと、VLOOKUP関数の列番号部分をMATCH関数で取得する数式は以下のようになります。
・利用者名の取得
=VLOOKUP(H3,$B$2:$F$12,MATCH($I$2,$B$2:$F$2,0),FALSE)
・役職CDの取得
=VLOOKUP(H3,$B$2:$F$12,MATCH($I$2,$B$2:$F$2,0),FALSE)
では少し詳しく見てみましょう。
利用者名をVLOOKUPで取得する場合を考えましょう。
列番号を指定して値を取得する場合は、以下のようになります。
H3の値をセル範囲B2:B12内で検索し、完全一致した行に対してB:Fの2列目の値を返します。
列番号をMACTH関数で取得する場合は、以下のようになります。
VLOOKUP関数の列番号をMATCH関数で取得しています。
MATCH関数部分は、以下のようになっています。
列番号の部分をMATCH関数を使って、セル「$I$2」(利用者名)がセル範囲「$B$2:$F$2」内の何列目かを取得しています。
MATCH関数については、過去記事を参照してください。
どんなときに使える?
私がしている業務の中では、元データの列数が多く、VLOOKUPで列番号を指定するのが面倒な時に使えそうです。
データベースから列数が十数列~数十列あるようなデータを取ってきて、VLOOKUPでデータを取るときに使えると思います。
データを取得する列が何列目かは、列数が多いと以下のように列を複数選択するとき7Cなどで何列目かを見たり、あらかじめ何列目のデータか分かりやすいように項番を振って列番号を入れることがあります。
<列を選択し、何列目かを確認>
<データの列名の上に何列目か項番を振る>
MATCH関数を用いればそういった手間がなく、取得したい列名が元データの何列目かを取得できるので便利ですね。