この記事では、VLOOKUP関数とMATCH関数を組み合わせる方法を解説します。VLOOKUP関数とMATCH関数の組み合わせをマスターし、効率的なデータ処理を確立できるようにしましょう。
MATCH関数は、指定した値が範囲内でどこに位置するかを調べられVLOOKUP関数の引数で列番号をする指定のに便利です。
この記事で学べること
VLOOKUP関数とMATCH関数を組み合わせ使用できる
自己紹介
IT業界でのキャリアを活かし、業務効率化に欠かせないMicrosoft365や便利ツールを紹介しています。少しのコツで膨大な可能性を最大限引き出すためのヒントやテクニックを提供し、読者のビジネスパフォーマンス向上に貢献することを目指しています!
VLOOKUP関数とMATCH関数の振返り
まずは、VLOOKUP関数とMATCH関数のそれぞれの振返りをしていきましょう。
それぞれの使い方がわかる方はVLOOKUP関数とMATCH関数の使い方まで飛んでください。
VLOOKUP関数の構文
=VLOOKUP(検索値, 検索範囲, 列番号, [検索方法])
構文の説明
検索値
┗検索キーとなる値で、この値を基にテーブル内を検索します。
検索範囲
┗検索対象となるテーブルの範囲です。この範囲は検索する値が含まれている必要があります。
列番号
┗テーブル内で検索結果を返す列の位置を示すインデックス番号です。検索範囲の左の列を1として始まります。
検索方法
┗真偽で指定しますが、基本的には「0」の完全一致を指定するで大丈夫です。
MATCH関数の構文
=MATCH(検索値, 検索範囲, 比較種類)
構文の説明
検索値
┗検索したい数値・テキスト・セル参照を指定。
検索範囲
┗値を検索する範囲を指定。
この範囲は、単一の行、単一の列、または範囲全体で指定できる。
比較種類
┗比較の種類は主に3つのオプションがあるので、下記の表を確認してください。
0または省略 | 範囲内で検索する値と完全に一致するものを検索します。 |
---|---|
1 | 範囲内の値が検索する値より大きい場合、最大値よりも小さい場合は最小値を返します。範囲が昇順に並んでいる場合に使用されます。 |
-1 | 範囲内の値が検索する値より小さい場合、最小値よりも大きい場合は最大値を返します。範囲が降順に並んでいる場合に使用されます。 |
VLOOKUP関数とMATCH関数の振返りが終わったところで、VLOOKUP関数の引数(列番号)を指定する際にMATCH関数を使えないか?と気づいた人も多いのではないでしょうか?
VLOOKUP関数とMATCH関数の使い方
VLOOKUP関数とMATCH関数を組み合わせて使う場合は、VLOOKUP関数の列番号を指定する引数にMATCH関数を入れて使用します。
=VLOOKUP(検索値, 検索範囲, MATCH(検索値, 検索範囲, 比較種類), [検索方法])
関数式
検索値
┗VLOOKUP関数の検索値。
検索する特定のセルやテキストを入力。
※テキストの場合は(”)で囲いましょう。
検索範囲
┗VLOOKUP関数の検索範囲。
検索値を検索する範囲を指定。
※絶対参照はF4キーで出来ます。
検索値
┗MATCH関数の検索値。
検索する特定のセルやテキストを入力。
※テキストの場合は(”)で囲いましょう。
検索範囲
┗MATCH関数の検索範囲。
検索値を検索する範囲を指定。
※絶対参照はF4キーで出来ます。
比較種類
0または省略 | 範囲内で検索する値と完全に一致するものを検索します。 |
---|---|
1 | 範囲内の値が検索する値より大きい場合、最大値よりも小さい場合は最小値を返します。範囲が昇順に並んでいる場合に使用されます。 |
-1 | 範囲内の値が検索する値より小さい場合、最小値よりも大きい場合は最大値を返します。範囲が降順に並んでいる場合に使用されます。 |
検索方法
┗基本、完全一致で大丈夫なので「0」またはFALSEを入力しましょう。
具体例を見ていきましょう!
実践問題:商品リストから特定の商品の売上を抽出する
=VLOOKUP(検索値, 検索範囲, MATCH(検索値, 検索範囲, 比較種類), [検索方法])
VLOOKUP関数とMATCH関数を組み合わせることで、元データの列を追加 or 削除してもデータを抽出することが可能です。
たとえば、商品名・販売価格・原価・利益が記載された商品リストがあるとします。
別シートで特定の商品名の販売価格・原価・利益を抽出する場合は下記のような関数式を組むことが出来ます。
=VLOOKUP(特定の商品名,
商品名が記載された範囲,
MATCH(特定のキー(販売価格や原価など),
特定のキーが記載された範囲,
完全一致なら0),
完全一致なら0)
テキストだけでは分かりにくいですよね。表を作成したので学んでいきましょう。
Sheet2の下記の商品リストが記載されたシートがあるとします。
Sheet1のA2セルに特定の商品を入力すると販売価格・原価・利益が紐づくように関数を組んでいきたいと思います。
今回は例として商品Aの販売価格をB2セルに紐づけていきます。
=VLOOKUP($A$2,Sheet2!$A:$D,MATCH(Sheet1!B1,Sheet2!$2:$2,0),0
関数を入力するとA2セルに入力されている商品名の販売価格がB2セルに紐づきます。
商品Aの販売価格が紐づいたので、B2セルからD2セルを範囲指定して「Ctrl+R」で関数を伸ばすと下記のようになります。
仮にSheet2で販売価格と原価の間に列を追加するとSheet1で組んだ関数はどうなるか見ていきましょう!
▼Sheet2で列を追加
▼列追加後のSheet1の結果
列を追加しても商品名の販売価格~利益まで紐づきましたね。
これで列を追加 or 削除してもデータを抽出することができます。