Vlookup match の組み合わせを使用するにはどうすればよいですか?
VLOOKUP と MATCH の組み合わせはスーパーパワーのようなものです。ご存知のとおり、VLOOKUP は最も人気のある関数の 1 つです。
右?
これは、列内の値をすばやく見つけるのに役立ちます。しかし、どんどん使っていくと、いくつかの問題に気づくようになります。そして最大の問題は、それが動的ではないことです。
VLOOKUP では、col_index_no は静的な値であり、これが VLOOKUP が動的関数として機能しない理由です。ここで、VLOOKUP と MATCH を組み合わせる必要があります。
複数列のデータを操作している場合、その参照を変更するのは面倒で、手動で行う必要があります (列番号を変更する)。
この問題を解決する最善の方法は、VLOOKUP で Col_index_number に対して MATCH 関数を使用することです。今日この記事では、このコンボ公式を使用するために知っておくべきことをすべて説明します。
VLOOKUPの問題
これら 2 つの関数を組み合わせて作成する主な理由は 2 つあります。
1. 静的参照
以下のデータ表を見てください。4 人の異なる従業員の 12 か月の売上が示されています。
ここで、2 月の「John’s」セールを検索するとします。式は次のようになるはずです。
=VLOOKUP("May",A1:E13,2,0)
そして、この式では、John の売上が 2 番目の列にあるため、col_index_num として 2 を指定しています。しかし、上司が「ピーター」の売上高を取得するように指示したら、どうしますか?
Col_index_num の値は動的ではないため、変更する必要があります。
2. 列の追加または削除
今度は別の方法で考えてみましょう。 John の列の直前に、新しい従業員用の新しい列を追加する必要があります。
ここで、John の列番号は 3 であり、数式の結果は正しくありません。
ここでも、col_index_num は静的な値であるため、手動で 2 から 3 に変更する必要があり、他のものが必要な場合は再度変更する必要があります。
この時点で、col_index_num を動的にするために必要なことが 1 つ明確にわかります。このためには、MATCH 関数に置き換えるのが最善です。
なぜマッチ関数なのか
VLOOKUP と MATCH を組み合わせる前に、match 関数とその仕組みを理解する必要があります。 MATCH の基本的な使用法は、範囲内の検索値のセル番号を見つけることです。
構文: MATCH(lookup_value,lookup_array,[match_type])
主に、検索値、値を検索する範囲、完全一致またはあいまい一致を指定する一致タイプの 3 つの引数があります。
たとえば、以下のデータでは、match 関数を使用してヘッダー行から「John」という名前を検索しています。
また、名前が行の 2 番目のセルにあるため、結果として 2 が返されました。
VLOOKUP と MATCH の併用
今度は、VLOOKUP と MATCH を組み合わせます。それでは、前の例を続けてみましょう。
まず、両方の関数を使用して数式を作成しましょう。次に、これら 2 つがどのように連携するかを理解します。
このコンボ式を作成する手順は次のとおりです。
- まず、1 つのセルに月の名前を入力し、別のセルに従業員名を入力します。
- その後、3番目のセルに以下の数式を入力します。
=VLOOKUP(C15,A1:E13,MATCH(C16,A1:E1,0),0)
上の数式では、VLOOKUP を使用して月 MAY を検索し、col_index_num 引数には静的な値の代わりに match 関数を使用しました。
そして、match 関数では、検索値に「John」(従業員名)を使用しました。
ここで、match 関数は上の行の「John」のセル番号を返しました。その後、VLOOKUP はこのセル番号を使用して値を返しました。
簡単に言うと、MATCH 関数は値を取得するための列番号を VLOOKUP に伝えます。
問題は解決しましたか?
上記では、静的な Col_index_numによって引き起こされる 2 つの異なる問題について学びました。
このために、VLOOKUP と MATCH を組み合わせました。次に、これらの問題が解決されたかどうかを確認する必要があります。
1. 静的参照
VLOOKUP の列番号を取得するために match 関数で従業員名を参照しました。
セル内の従業員名を変更すると、match 関数によって列番号が変更されます。別の従業員の値を取得する必要がある場合は、セル内の従業員名を変更する必要があります。
このようにして、動的なcol_index_numberが得られます。
最後に、数式を何度も変更する必要はありません。
2. 列の追加または削除
新しい列を追加する前は、John のデータは 2 列目にあり、match 関数は 2 を返しました。そして、新しい列を挿入した後、John のデータは 3 列目にあり、match 関数は 3 を返しました。
新しい従業員用に新しい列を追加しても、一致関数によって値が更新されるため、数式の値は変更されません。
こうすることで、列を挿入/削除した場合でも、常に正しい列番号を取得できます。 MATCH 関数は正しい列番号を返します。