Excel VLOOKUP関数の列番号をXMATCH関数で簡単に指定する

Excel

VLOOKUP関数は表を縦方向に検索して、検索値と一致した行の値を取り出すことができる関数です。

近年は、ほぼ上位互換のXLOOKUP関数が出てきたため、VLOOKUP関数単体では使用するメリットはないが、下記の場合はVLOOKUP関数にXMATCH関数を組み合わせて使用した場合は、XLOOKUP関数より便利である。

  • 値を抽出する列が変更される可能性がある場合
  • 抽出したい列を動的に変更したい場合
Excel Excel の台帳から帳票を簡単に作成する方法

VLOOKUP関数の使い方

まずは、VLOOKUP関数使い方を押さえておきましょう。

VLOOKUP関数

=VLOOKUP(検索値, 参照値を含む範囲, 戻り値を含む範囲内の列番号,近似一致または完全一致)

検索値:検索する値
参照値を含む範囲参照値はデータの先頭の列である必要がある。参照値の列から戻り値を含む列全てを選択
戻り値を含む範囲内の列番号参照値の列から戻り値の列まで列の数
近似一致または完全一致:近似一致の場合はTURE、完全一致の場合はFALSEを指定する。

例としてVLOOKUP関数を使って社員名簿のデータの中の社員番号を指定して社員名を抽出します。

VLOOKUP関数の使用の前提条件として、検索値を含む列を参照範囲の先頭の列にしておく必要があります。

下図のH2のセルに表示している数式はG2に入力した数式です。
第一引数の検索値には社員番号が入力されているF2を指定します。
第二引数の参照範囲はには「A:B」を指定し、A列からB列全体を指定しています。
第三引数の列番号には参照範囲の先頭から2番目の列の値を抽出したいので「2」を指定します。
第四引数は完全一致の「FALSE」をしていします。

これがVLOOKUP関数の基本的な使い方となります。

XMATCH関数でVLOOKUP関数の列番号を指定する方法

抽出したい値がある列が参照範囲の何番目であるかを数えて数字を入力するのではなく、第三引数にXMATCH関数を使って指定したい列番号を表の見出しから指定すると便利です。

XMATCH関数の詳しい解説は下の記事を参照ください。

Excel Excel XMATCH関数で条件に一致するセルの位置を特定する

XMATCH関数を使ってVLOOKUP関数の第三引数を指定した例が下図です。

XMATCH関数は検索値が検索範囲の何番目にあるかを算出します。
第一引数に検索値(列の見出し(G2のセル))を指定し、第二引数に検索範囲(A1:D1)を指定することで、列の見出しが何番目にあるかを自動で計算することができます。

社員名は2番目のためXMATCH関数は「2」を返します。

表の列を入れ替える

XMATCH関数を使えば、社員名の列を入れ替えても数式を変更しなくても同じ結果を得ることができます。

下図のように社員名をB列からC列に変更しても、数式を変更しなくても同じ結果を得られています。
この場合は、社員番号がXMATCH関数の検索範囲の3番目に移動したためXMATCH関数は「3」を返します。

動的に抽出したい列を変更する

抽出したいデータの列を変更したい場合は、XMATCH関数の第一引数の検索値を変更すればできます。

列の見出しを変えれば、抽出する値の列を自動的に変更できるため、動的に抽出したい列を変更することができます。

下図では、抽出したい列の見出しを変更すると検索する列が指定した見出しの列になることが分かると思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です