VLOOKUP関数とMATCH関数で動的に値を取得する方法

VLOOKUP関数とMATCH関数で、列番号を指定せずに、動的に値を取得する方法


本記事では、

VLOOKUP関数とMATCH関数を組み合わせて、

列番号を指定せず動的に値を取得する方法を解説します。

VLOOKUP関数とMATCH関数の組み合わせ

ExcelのVLOOKUP関数は、
特定の値を検索し、その値が見つかった行の指定した列の値を返す便利な関数です。

しかし、通常、VLOOKUP関数は列番号を指定する必要があります。

これは、データが変更された場合や列が追加された場合には手間がかかります。

そこで、MATCH関数を組み合わせることで、
列番号を指定せずに動的に値を取得することが可能になります。

MATCH関数は、指定した値が配列内のどの位置にあるかを返す関数で、
これをVLOOKUP関数の列番号の部分に使用します。

例示

例えば、以下のような社員リストがあります:

列番号を指定せずに、

下記の社員リストから「田中」さんの「給与」を取得する方法を考えます。

VLOOKUP関数とMATCH関数で、列番号を指定せずに、動的に値を取得する方法


解答

VLOOKUP関数とMATCH関数の使い方に自信のない方は以下を拝読してみてください。

  1. VLOOKUP関数のダイアログボックスを開いて、任意セルに次のように入力します
  2. 第2引数のMATCH関数は、手入力になります

    ※ダイアログボックスの使い方は巻末の参考記事をご拝読ください。
VLOOKUP関数とMATCH関数で、列番号を指定せずに、動的に値を取得する関数式。ダイアログボックスを使用
  1. [OK]を押すと、次のような関数式が入力されます。
VLOOKUP関数とMATCH関数で、列番号を指定せずに、動的に値を取得する関数式。

関数式の構造解説

=VLOOKUP(“田中”, A1:D6, MATCH(“給与“, A1:D1, FALSE)

VLOOKUP関数は「田中」をA1:D6の範囲で検索し、一致した行の「給与」の列の値を取得します。

そして、列番号はMATCH関数を使用して、

A1:D1の中で「給与」が何列目にあるかを動的に取得します。

これにより、列の位置が変わっても正確に「給与」の値を取得できます。

さらに、以下のような動的処理も可能になります。

=VLOOKUP(“田中”, A1:D6, MATCH(“役職“, A1:D1, FALSE)

とすれば、「役職」を取得できますし、

=VLOOKUP(“田中”, A1:D6, MATCH(“部署“, A1:D1, FALSE)

とすれば、「部署」を取得できます。

列番号を指定せずに、動的に取得できています。

フォローアップ

ダブルクォーテーション

文字列は、半角のダブルクォーテーション(“)で囲みます。

例えば、”スポーツ”と”スポーツ以外”とします。

XLOOKUP関数との比較

また、ExcelにはXLOOKUP関数もありますが、これは列番号を指定せずに値を取得できます。

しかし、XLOOKUP関数は静的であり、列の位置が変わると結果も変わってしまいます。

その点で、VLOOKUP関数とMATCH関数の組み合わせは優れています。

最後に

VLOOKUP関数とMATCH関数を組み合わせることで、

列番号を指定せずに動的に値を取得することが可能になります。

これにより、データの変更や列の追加に対応することが容易になります。

Excelをビジネス現場で活用する際には、このテクニックをぜひ試してみてください。

解答付きサンプルデータ

解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。


参考記事

Excel関数を操作するための基本概念です。基本概念を理解すると、各関数の理解がより深まります。

構文に関する記事

Excel関数の引数と戻り値は何だっけ?という時に、役立つ記事です。

ダイアログボックスの使い方に関する記事

Excel関数名は何だっけ?VLOOKUP関数の使い方は何だっけ?という時に、ダイアログボックスを使うと便利です。
下記はそのダイアログボックスに関する記事です。

参照形式に関する記事

関数式をコピーする時はどうしたらいい? $マークは、どう付けたらいいだろう?
といった悩みをお持ちの方は以下をご覧ください。