リテラアップダウンロード

ExcelのMATCH関数の使い方|INDEX関数との組み合わせも

ExcelのMATCH関数の使い方

この記事では、Excel(エクセル)のMATCH関数の使い方について基本から応用まで初心者でもわかりやすく解説します。

MATCH関数は、Excelの関数の中でもよく使用される関数の1つと言えるでしょう。膨大なデータの中から欲しいデータがどの位置にあるのかを知りたいときに有効です。

またMATCH関数と併せて使用されることが多い、INDEX関数との組み合わせについても紹介します。

ExcelのMATCH関数とは

Excel(エクセル)のMATCH関数とは、指定した検査値が検査範囲の中で何番目のセルかを求める関数です。

例えば表の中から「りんご」という単語を探したい時にMATCH関数を使えば、「リンゴ」と書かれたセルが表中の何行何列目にあるかを調べることができます。

MATCH関数の書式

MATCH関数

Excel(エクセル)のMATCH関数の書式を説明します。

MATCH関数の構文は「=MATCH(検索値, 検索範囲, 照合の種類)」といったように3つの引数から成り立っています。検索範囲と照合の種類を設定して、指定した範囲の中から指定した方法で検索値と合致するものを探し、そのセルのアドレス値を返します。

検索範囲して列を指定すればその列内での行番号を、行を指定すればその行内での列番号が分かります。

それでは詳細な引数の設定の仕方を見ていきましょう。

  • 第1引数:検索値
  • 第2引数:検索範囲
  • 第3引数:照合の種類

第1引数:検索値

MATCH関数

まず、第1引数には検索値を設定します。この引数は必須で、探したい文字列を直接入力するかセル参照で指定します。

文字列などの値を直接指定するときはダブルクォーテーション「”」で囲い、「”文字列”」といったように記述することを忘れないように注意しましょう。

第3引数の照合の種類が「0」の場合は、後ほど紹介するワイルドカードを使ったあいまい検索も可能です。

第2引数:検索範囲

MATCH関数

第2引数には検索範囲を設定します。こちらの引数も必須となっており、検索するセルの範囲を指定します。範囲としては、任意の列か行の一次元のデータを指定しましょう。

第3引数:照合の種類

MATCH関数

第3引数には照合の種類を設定します。こちらの引数は任意で、検索範囲の中から検査値を探す方法として「-1」「0」「1」のいずれかを指定します。それぞれの内容は下記の表のようになっており、省略すると自動的に「1」が適用されます。

照合の種類 検索値
-1 検査値以下の最大値を検索します。第2引数の検索範囲のデータを降順に並べ替えておく必要があります。
0 検索値と完全一致する最初の値を検索します。
1 検索値以上の最小値を検索します。第2引数の検索範囲のデータを昇順に並べ替えておく必要があります。

MATCH関数の使い方【実例】

Excel(エクセル)のMATCH関数の基本的な使い方を、実例を挙げながら紹介します。

STEP.1
売上データを使い、「インクシアン」の価格がある列と行の値を取得します。画像のようなデータを用意しましょう。

ExcelのMATCH関数【実例】

STEP.2
取得した列番号と行番号の値を表示する欄を作成します。

ExcelのMATCH関数【実例】

STEP.3
まず、「価格」がある列の値を取得します。セルに「=MATCH(B16,B3:D3,0)」と入力しましょう。照合の種類として、ここでは完全一致の「0」を指定します。

ExcelのMATCH関数【実例】

STEP.4
次に「インクシアン」がある行の値を取得します。セルに「=MATCH(B17,C4:C14,0)」と入力しましょう。こちらも照合の種類は完全一致の「0」を指定します。

ExcelのMATCH関数【実例】

STEP.5
これで「インクシアン」の価格が存在するセルの場所が表内の「3行8列目」にあることが分かりました。

ExcelのMATCH関数【実例】

MATCH関数で取得した行番号や列番号は、検索範囲内における番号です。シート内での絶対的な番号ではないので注意しましょう。

MATCH関数の応用方法

次は、Excel(エクセル)のMATCH関数の応用的な使い方を説明します。ワイルドカードを使って検索の幅を拡げたり、INDEX関数を組み合わせて汎用性を高めたりすることができます。

  • ワイルドカードを使ったあいまい検索
  • 複数条件で検索する方法

ワイルドカードを使ったあいまい検索

MATCH関数の検索値の中でワイルドカードを使い、あいまい検索をできるようにします。

あいまい検索とは、検索語句として入力した際に、その語句と類似した情報を検索結果として返す検索機能です。例えば部分一致する語句を検索する際に有効です。

「*」で部分一致検索する

ワイルドカードの1つ、アスタリスク「*」の使い方を紹介します。

この記号を使うと、どのような文字でも0文字以上の文字列と置き換えることができます。例えば「〇〇県」といったようにどの県でも構わないので「県」で終わる文字列を検索したい時には「“*県*”」と指定します。

MATCH関数で、「*」を使って部分一致するセルの場所を求めてみましょう。ここではデータの中から「東京」を含む文字列を探します。「=MATCH(“*東京*”,C3:C12,0)」と入力すると、該当するセルの行番号が取得できます。

「*」で部分一致検索する

「?」で任意の文字を検索する

次にワイルドカードの1つ、クエスチョンマーク「?」の使い方を紹介します。

この記号を使うと、任意の文字1文字と置き換えることができます。例えば「〇〇〇県」といったように3文字の県を検索したい時には「“???県”」と指定します。

例のようなデータを用い、MATCH関数で「=MATCH(“???県”,C3:C12,0)」と入力すると3文字の県である神奈川県の文字列の場所を探すことができます。

「?」で任意の文字を検索する

「?」1つに対して1文字代替できるので、文字数に合わせて複数の「?」を使用できます。

複数条件で検索する方法

複数の条件を組み合わせて検索する方法を紹介します。ここでは、MATCH関数を使ってサイズと色両方の条件にあてはまる商品が何行目にあるかを求める方法をご紹介します。

STEP.1
例のようなデータを用意しましょう。サイズと色など複数の属性が列ごとに並んでいる表を作成してください。

複数の条件を指定する欄と、その条件を満たす項目のある行を表示させる欄も作成しましょう。ここでは表中の上から何番目にあるかを表示させます。

複数条件で検索する方法

STEP.2
次に検索したい条件を指定しましょう。例ではサイズが「M」で色が「ホワイト」であるアイテムがある行数を知りたいのでそれぞれ「M」「ホワイト」と入力しています。この時半角/全角や空白のありなしを間違えるとうまく検索されませんので注意しましょう。

複数条件で検索する方法

STEP.3
検索したアイテムのある行数を表示させる欄にMATCH関数を入れていきます。「=MATCH(B14&C14,B3:B11&C3:C11,0)」と入力しましょう。第1引数と第2引数で、それぞれの条件を「&」でつないで指定します。

複数条件で検索する方法

STEP.4
「Enter」キーを押しましょう。指定した複数の条件を満たすアイテムの場所が表示されました。

複数条件で検索する方法

STEP.5
例では表の中での相対的な位置を表示させましたが、エクセルシートの行と対応させた行数を表示させたい場合は表の先頭行から1引いた数を足せばOKです。

例では表の先頭行が「3」になるので「=MATCH(B14&C14,B3:B11&C3:C11,0)+2」と記述すればエクセルシートにおける「8」行目と表示されます。

複数条件で検索する方法

MATCH関数でエラーが出る原因・対応方法

Excel(エクセル)のMATCH関数を使った時に、エラーが出ることがあります。エラーが出てしまう原因と、その原因に対する対策方法を解説していますので参考にしてみてください。

  • 検索値が検索範囲に存在しない
  • 完全一致する検索値が検索範囲に存在しない
  • 第3引数「照合の種類」を「1」「-1」に指定する場合

検索値が検索範囲に存在しない

検索値が指定した検索範囲に存在しない場合にエラーが出ます。特に関数をコピー&ペーストした時に検索範囲がズレることがよくあります。

検索範囲を相対参照で指定していると、コピーして異なるセルにペーストした際に自動で検索範囲が変更されてしまうのです。

回避するためには、「$」を用いて絶対参照を使用しましょう。「$A$2:$A$10」といったように数字やアルファベットの前に付けることで、コピー&ペーストしても範囲が自動で変更されることはありません。

検索値が検索範囲に存在しない

このように、意図しない変更で検索値が検索範囲からズレていないか確認しましょう。

完全一致する検索値が検索範囲に存在しない

第3引数「照合の種類」を「0」に指定する場合、完全一致する検索値が検索範囲に存在しないとエラーになってしまいます。

MATCH関数に限りませんが、よくあるのが「全角」と「半角」の違いや「スペース」の有無です。英語やカタカナ、数字や記号を使う時に全角と半角が違っていれば一致したとはみなされません。

完全一致する検索値が検索範囲に存在しない

また、スペースや空白の有無でも結果が変わってきます。特にスペースが文字列の後に挿入されていたり、スペースの半角と全角が混在していると修正するのが困難です。そのような時は、置換機能を使用してスペースを削除するとよいでしょう。

第3引数「照合の種類」を「1」「-1」に指定する場合

第3引数「照合の種類」を「1」「-1」に指定する場合にはデータの並び順に注意が必要です。

最大値、最小値を求める際にデータが規則的に並んでいないと正しい値が求められず、エラーが出てしまいます。

「1」は検査値以下の数字の中で最大のものを探索するためデータを昇順に、「-1」は検査値以上の数字の中で最小のものをデータを降順に並べ替えておくことを忘れないようにしましょう。

第3引数「照合の種類」を「1」「-1」に指定する場合

MATCH関数とINDEX関数を組み合わせた使用例

MATCH関数と組み合わせて用いられることが多いINDEX関数との使い方を紹介します。

ここでは例として、商品名を入力したら価格が表示される仕組みをつくります。

STEP.1
画像のようなデータを用意しましょう。商品名を入力する欄と、その商品名がある行番号およびその商品の価格を表示させる欄を作成します。

MATCH関数とINDEX関数を組み合わせた使用例

STEP.2
まずはMATCH関数を使って、「インクシアン」がある行番号を取得します。商品名に「インクシアン」、行番号のセルに「=MATCH(C15,C3:C13,0)」と入力しましょう。

MATCH関数とINDEX関数を組み合わせた使用例

STEP.3
次に取得した行番号とINDEX関数を使って「インクシアン」の価格を取得します。価格のセルに「=INDEX(D3:D13,C16)」と入力しましょう。第1引数には検査範囲となる価格の列を、第2引数にはインクシアンの行番号を参照しています。

MATCH関数とINDEX関数を組み合わせた使用例

STEP.4
これで「インクシアン」の価格を表示させることができました。以上で操作は完了です。

MATCH関数とINDEX関数を組み合わせた使用例

MATCH関数のポイントを改めておさらい

Excel(エクセル)のMATCH関数は、データのセルの位置を調べる時に使用する関数でした。特に実践の場ではINDEX関数と組み合わせて使われることが多いです。

基本的な使い方を学んだら、この記事で紹介した具体例を参考にしながら応用的な使い方をしてみてください。

エラーが出た時は、今回紹介した3つのパターンに当てはまっていないかチェックしてみましょう。

リテラアップアプリのご利用について、法人の方は下記フォームよりお問い合わせください。

(Excel,WordなどOffice製品やPC関連の技術的な質問にはお答えできかねます。ご了承ご了承ください。)