【Excel】INDEX MATCH関数の使い方を理解すると、大量のデータから必要な情報を柔軟に検索し、効率よく取得できます。INDEX関数とMATCH関数を組み合わせることで、商品一覧や社員名簿、売上管理表など、さまざまな表から目的のデータを簡単に抽出できます。この記事では、基本構文から具体例、エラーの対策まで初心者向けに解説します。
エクセル INDEX MATCH 使い方|基本構文・具体例・エラー対策
INDEX関数とMATCH関数とは?
INDEX MATCHは、INDEX関数とMATCH関数を組み合わせてデータを検索する方法です。それぞれの関数には異なる役割があります。
INDEX関数は、指定した範囲から行番号と列番号に対応するデータを取得する関数です。一方、MATCH関数は、指定した範囲から検索値を探し、その位置を返します。
この2つを組み合わせると、検索したいデータの位置をMATCH関数で特定し、その位置にある値をINDEX関数で取得できます。VLOOKUP関数では対応しにくい左方向への検索にも活用できる点が特徴です。
INDEX関数の基本構文
INDEX関数は、次の構文で使用します。
=INDEX(配列, 行番号, 列番号)
各引数の意味は次のとおりです。
- 配列: データを取得するセル範囲を指定します。
- 行番号: 範囲の上から何行目のデータを取得するか指定します。
- 列番号: 範囲の左から何列目のデータを取得するか指定します。
例えば、A2の範囲から2行目、3列目の値を取得する場合、次の数式を使用します。
=INDEX(A2:C5,2,3)
この数式では、指定した範囲の2行目、3列目にある値が返されます。
MATCH関数の基本構文
MATCH関数は、検索値が指定した範囲の何番目にあるかを調べる関数です。
=MATCH(検索値, 検索範囲, 照合の種類)
主な引数の意味は次のとおりです。
- 検索値: 検索したい商品名や社員番号などを指定します。
- 検索範囲: 検索対象となる1行または1列の範囲を指定します。
- 照合の種類: 完全一致の場合は「0」を指定します。
例えば、A2に商品コードが入力されていて、A4にある「P103」の位置を検索する場合、次の数式を使用します。
=MATCH("P103",A2:A5,0)
「P103」が範囲の3番目にある場合、結果として「3」が返されます。
INDEX MATCHを組み合わせる方法
INDEX関数とMATCH関数を組み合わせると、検索値に一致するデータを簡単に取得できます。
例えば、A列に商品コード、B列に商品名、C列に価格が入力された表があるとします。E2セルに商品コードを入力し、対応する商品名をF2セルに表示したい場合、次の数式を使用します。
=INDEX(B2:B10,MATCH(E2,A2:A10,0))
この数式では、MATCH関数がE2セルの商品コードをA2から検索し、一致した位置を返します。INDEX関数は、その位置に対応するB2の商品名を取得します。
価格を取得したい場合は、INDEX関数の対象範囲をC2に変更します。
=INDEX(C2:C10,MATCH(E2,A2:A10,0))
この方法なら、検索値を変更するだけで、対応する商品名や価格を自動的に表示できます。
INDEX MATCHで左方向に検索する方法
INDEX MATCHの大きなメリットは、検索列より左側にあるデータも取得できることです。
例えば、A列に商品名、B列に商品コードがある表で、商品コードから商品名を検索したい場合を考えます。VLOOKUP関数では検索列を範囲の左端に配置する必要がありますが、INDEX MATCHならその制約がありません。
次の数式を使用します。
=INDEX(A2:A10,MATCH(E2,B2:B10,0))
E2セルの商品コードをB2から検索し、一致した位置にあるA2の商品名を取得します。
このように、列の順番を変更せずに検索できるため、既存の表をそのまま活用したい場合にも便利です。
INDEX MATCHでエラーが発生する原因と対策
INDEX MATCHで「#N/A」が表示される場合、MATCH関数が検索値を見つけられていない可能性があります。検索値の入力ミスや余分なスペース、数値と文字列の形式の違いを確認しましょう。
また、INDEX関数の行番号とMATCH関数が返す位置が適切に対応しているかも重要です。例えば、INDEX関数の対象範囲とMATCH関数の検索範囲で開始行が異なると、意図しないデータが取得される場合があります。
エラー表示をわかりやすくしたい場合は、IFERROR関数を組み合わせます。
=IFERROR(INDEX(B2:B10,MATCH(E2,A2:A10,0)),"該当なし")
この数式では、検索に失敗した場合に「該当なし」と表示できます。
INDEX MATCHとVLOOKUPの違い
VLOOKUP関数は、検索範囲の最左列から検索して右側のデータを取得します。一方、INDEX MATCHは検索列と取得列を別々に指定できるため、左方向への検索にも対応できます。
また、INDEX MATCHは、検索列と取得列の間に列が追加された場合でも、参照範囲を適切に設定すれば数式を維持しやすいという利点があります。ただし、範囲の変更や削除によって数式の修正が必要になる場合もあります。
「エクセル INDEX MATCH 使い方」をマスターすれば、検索方向の制約を受けにくくなり、複雑なデータ検索も効率よく行えます。 まずはINDEX関数とMATCH関数の役割を理解し、商品一覧や社員名簿などの身近な表で練習してみましょう。完全一致の指定やIFERROR関数も活用すれば、より正確で使いやすいExcelのデータ管理を実現できます。