この記事のポイント
今回はMATCH関数についてご紹介します。
Excel(エクセル)の関数を使って表から行や列を指定して、条件一致するデータの抽出をしたいですよね。
MATCH関数を使うと探したいデータを検索して、どこの位置にあるか教えてくれます。
INDEX関数はテーブルの行と列を指定すことで、交差するデータを返してくれます。
つまりINDEX関数とMATCH関数を組み合わせることで、自由にデータ抽出ができます。
前半はMATCH関数の使い方を解説し、後半ではエクセルのINDEX、MATCHなど関数を複数使い、テーブルからデータを抽出する実践的な使い方も解説しますよ。
Table of Contents
MATCH関数ってなに?検索範囲内から検索値の相対的な位置を返す関数
エクセルのMATCH(マッチ)関数は、指定した範囲の中から、探したい値がどこにあるのかを探してくれる関数です。
探したい値が見つかった場合は、検索範囲の先頭から何番目にあるのかを教えてくれます。
探しているデータが先頭からどの位置にあるかが分かるため、たくさんのデータから検索するときに役立ちますね。
MATCH関数はINDEX関数と組み合わせることが多い
MATCH関数はINDEX関数と組み合わせることで、VLOOKUP関数のように使うことができますよ。
まずはMATCH関数の基本的な使い方を覚えてから、INDEX関数を組み合わせる方法を解説します。
後半はMATCH関数とINDEX関数を組み合わせた実戦的な使い方になりますので、ぜひ最後までチェックして下さいね。
MATCH関数の使い方は?書式と引数を解説
MATCH関数は検索範囲から、指定した検索値が何番目にあるのかを求めることができます。
実際にMATCH関数を使うために、引数について解説しますね。
MATCH関数の書式
MATCH関数の書式はこちらです。
MATCH関数の書式
MATCH(検査値, 検査範囲, [照合の種類])
MATCH関数の引数について解説します。
MATCH関数の引数
- 「検査値」は必須項目で、検索したい値を指定します。
- 「検索値」に文字列を指定する場合は、「"(ダブルクォーテーション)」で括る必要があります。
- 「検査範囲」は必須項目で、検索したいセルの範囲を指定します。
- 「照合の種類」は「1」「0」「-1」を指定しますが、完全一致するものを探すときは「0」を指定しましょう。
- 「照合の種類」を省略した場合、「1」を指定したことになります。
照合の種類の説明
照合の型 | 検査方法 |
1 | 検査値以下の最大値を検索 |
0 | 検査値と完全一致する最初の値を検索 |
-1 | 検査値以上の最小値を検索 |
MATCH関数を使うには?実例を使って解説
関数を使うための基本的な操作は、「関数の挿入」を使うことになります。
関数の挿入を使ってMATCH関数を使うには、タブの真下にある「fx」をクリックする必要があります。
キーボードから直接入力することも可能ですが、まずは関数の呼び出し方や使い方に慣れることを優先しましょう。
関数の挿入からMATCH関数を選択
関数の挿入からMATCH関数を使って、検査範囲から検査値の位置を取得してみましょう。
MATCH関数を選択
- N5セルをクリック
- 「fx」をクリック
- 関数の検索をしましょう。
MATCH関数の検索方法として
MATCH関数の検索方法
- 「関数の検索」に「MATCH」を入力して検索
- 「関数の分類」に「検索/行列」を選択
どちらかの方法を使うことで「関数名」に候補となる関数の一覧が表示されますので、「MATCH」を選択してOKボタンを押します。
【縦方向に列を検索】MATCH関数の引数の設定
検査範囲「E5:E7」(4,14,24)から検査値「14」を列で検索します。
MATCH関数の引数の画面に移動しましたら、関数の引数には以下の値を設定しましょう。
MATCH関数の引数
- 「検査値」に「M5」を入力
- 「検査範囲」に「E5:E7」を入力
- 「照合の種類」に「0」を入力
MATCH関数の結果は「2」が表示されたので、検査値「14」は検査範囲の2番目にあることがわかりました。
【横方向に行を検索】MATCH関数の引数の設定
検査範囲「B6:K6」(11,12,13,14,15,16,17,18,19,20)から検査値「14」を行で検索します。
MATCH関数の引数の画面に移動しましたら、関数の引数には以下の値を設定しましょう。
引数の値
- 「検査値」に「M5」を入力
- 「検査範囲」に「B6:K6」を入力
- 「照合の種類」に「0」を入力
MATCH関数の結果は「4」が表示されたので、検査値「14」は検査範囲の4番目にあることがわかりました。
検査範囲はエクセルの行で指定しても、列で指定しても検査値の位置を検索できましたね。
MATCH関数とINDEX関数を使った実践的な関数の使い方を解説
MATCH関数は指定した範囲の中から、一致するデータを発見したら、先頭から何個目の位置にあるかを表示してくれます。
ではエクセルのINDEX関数とMATCH関数を組み合わせて、複数条件で実践的な使い方を解説します。
INDEX関数は列数と行数を指定することで、表の中から列と行がクロスするデータを取得することができます。
INDEX関数について詳しく知りたい方は、こちらをチェックして下さいね。
商品一覧表を用意しましたので、こちらの表の列と行を指定して抜き出したいデータを表示してみましょう。
エクセルのB列には「商品名」2行目には「商品項目」があるので、確認しましょう。
商品名
- えんぴつ
- ボールペン
- 消しゴム
- ノート
商品項目
- 商品コード
- 一般価格
- 会員価格
MATCH関数を使う前の準備
MATCH関数を使う前の準備として、商品名と商品項目で指定ミスがないように、リストから選択できるようにしましょう。
商品名のリスト作成
商品名のリストを作成します。
C8セルをクリックしたら、エクセルのメニューにある「データ」→「データの入力規則」の順に選択します。
データの入力規則ダイアログボックスが表示されたら、以下の設定をしましょう。
データの入力規則
- 入力値の種類:リスト
- 元の値:=$B$3:$B$6
OKボタンをクリックしてリストを完成させます。
商品の項目リスト作成
商品項目名のリストを作成します。
C9セルをクリックしたら、エクセルのメニューにある「データ」→「データの入力規則」の順に選択します。
データの入力規則ダイアログボックスが表示されたら、以下の設定をしましょう。
データの入力規則
- 入力値の種類:リスト
- 元の値:=$C$2:$E$2
OKボタンをクリックしてリストを完成させます。
MATCH関数とINDEX関数を使って表から対象データを取得
入力規則を使ってドロップダウンリストで、商品名と商品項目を選択できるようになりました。
INDEX関数の書式は、配列形式と参照形式がありますが、今回使用する配列形式の書式は以下のようになります。
INDEX関数
=INDEX(配列,行番号,[列番号])
INDEX関数の引数の説明
- 配列:データを取得したい表の範囲を指定
- 行番号:MATCH関数で商品名の位置を指定
- 列番号:MATCH関数で商品項目の位置を指定
実際にINDEX関数の引数の設定値を見ていきましょう。
INDEX関数の引数を指定
- 配列:表の左上から右下の位置「B2:E6」を指定
- 行番号:MATCH関数で商品名を検索するため「MATCH(C8,B2:B6,0)」を指定
- 列番号:MATCH関数で商品項目を検索するため「MATCH(C9,B2:E2,0)」を指定
INDEX関数の引数がわかったので、C11セルに「=INDEX(B2:E6,MATCH(C8,B2:B6,0),MATCH(C9,B2:E2,0))」を入力しましょう。
商品名と商品項目に該当するデータを取得
C11セルに、MATCH関数とINDEX関数を組み合わせた数式ができました。
C8セルの商品名を変更、C9セルの商品項目を変更することで表から対象のデータを取得することができます。
選択項目 | 選択内容 |
商品名 | えんぴつ |
商品項目 | 一般価格 |
表示結果
「80」円が表示されました。
このように必要なデータを表から簡単に取得できるため、INDEX関数とMATCH関数を使う方法は実践的といえますね。
エクセルのMATCH関数まとめ
Excel(エクセル)のMATCH(マッチ)関数を使って、検索値が検索範囲内の何番目にあるか表示してくれることがわかりました。
MATCH関数を単体で使うより、INDEX関数と組み合わせて使う機会の方が多いと言えます。
INDEX関数とMATCH関数を組み合わせることで、仕事でも役立つ使い方ができますので実戦的だと言えますね。
範囲内を検索してセルの値を返す動きとしては、VLOOKUP関数に似ているかも知れませんね。
VLOOKUP関数の使い方はコチラを参考にして下さいね。