人気アプリの不具合・使い方まとめ

【Excel】INDEXとMATCH関数の組み合わせ使い方完全ガイド|VLOOKUPとの違い・エラー対処・複数条件対応まで徹底解説

Excelでデータの検索・抽出を行う際、多くの人が最初に使うのは VLOOKUP 関数。

しかし、

「列の左側を参照できない」

「列番号を変えると壊れる」

などの制限もあります。

そんなときに役立つのが、INDEXMATCH関数の組み合わせです。

この記事では基本構文から実践的な応用、よくあるエラーの解消、VLOOKUPとの違い、複数条件対応まで解説します。


INDEX関数とは?|セルの位置から値を取り出す

excelCopyEdit=INDEX(範囲, 行番号, [列番号])

例:

excelCopyEdit=INDEX(A2:C5, 2, 3)

→ A2:C5の2行目3列目の値を返す

  • 範囲内の「行・列の位置」から値を取り出す関数
  • 直接セル参照を使わないため、柔軟性が高い

MATCH関数とは?|検索値の「位置」を返す

excelCopyEdit=MATCH(検索値, 検索範囲, [照合の型])

例:

excelCopyEdit=MATCH("東京", A2:A5, 0)

→ A2:A5の中で「東京」が何番目にあるか(位置)を返す

  • **完全一致なら「0」**を指定
  • 一致しない場合は #N/A エラーが返る

INDEXとMATCHを組み合わせる基本構文

ひらめき3
excelCopyEdit=INDEX(返したい範囲, MATCH(検索値, 検索範囲, 0))

例:

A列(商品)B列(価格)
りんご100円
バナナ150円
みかん120円
excelCopyEdit=INDEX(B2:B4, MATCH("バナナ", A2:A4, 0))

→ 結果:150円
→ 「A列から検索して、B列の該当行を返す」という操作が可能


INDEX+MATCH vs VLOOKUP の違いと比較

項目INDEX+MATCHVLOOKUP
検索方向左右どちらも可左から右のみ
列削除に強い?強い(列位置を数式で特定)弱い(列番号が壊れやすい)
処理速度(大規模データ)高速(MATCHは軽量)中程度
可読性やや複雑単純

結論:中級者以上はINDEX+MATCHのほうが拡張性・保守性に優れています。


【実践】MATCH関数で列番号を動的に指定する応用例

excelCopyEdit=INDEX(B2:D4, MATCH("みかん", A2:A4, 0), MATCH("価格", B1:D1, 0))
  • 左側のMATCH:行を検索
  • 右側のMATCH:列を検索(ヘッダー名から取得)

「見出し名」で列番号を動的に取得できるのが強み


よくあるエラーとその対処法

#N/Aエラー:一致する値が見つからない

  • MATCHの検索値と範囲のデータ型の不一致に注意(数値 vs 文字列)
  • スペースの混入もエラーの原因に(TRIM関数で解消可能)

#REF!エラー:行や列番号が範囲外

  • MATCHの戻り値が 0 または N/A のまま INDEX に渡っていないか確認

INDEX+MATCHで複数条件に対応する方法

MATCHは通常1条件しか扱えませんが、配列数式で工夫することで複数条件検索も可能です。

例:名前が「田中」かつ部門が「営業」の行番号を取得

excelCopyEdit=MATCH(1, (A2:A100="田中")*(B2:B100="営業"), 0)
  • *はAND条件(両方が真なら1)
  • この構文は配列数式なので、Excel 365以外では Ctrl + Shift + Enter が必要

INDEX+MATCHをさらに便利にする関数の組み合わせ

追加関数用途
IFERRORエラー時の値を制御=IFERROR(INDEX(...), "なし")
INDIRECT文字列から参照を作る=INDEX(INDIRECT("Sheet1!A1:A10"),...)
TEXT書式付きで値を表示=TEXT(INDEX(...), "yyyy/mm/dd")

よくある質問(FAQ)

INDEX関数とMATCH関数は何に使う?

  • INDEX:セルの位置から値を取得
  • MATCH:指定値の位置を取得
    組み合わせることで、検索値に対応する任意の列の値を取得可能

VLOOKUPとINDEX・MATCHはどちらが速い?

  • 一般に INDEX+MATCHの方が高速・柔軟
  • 大量データ処理では特に差が出ます

MATCH関数だけを使う場合は?

  • 指定値の「位置」だけが必要なときに有効
  • 例:=MATCH("東京", A2:A100, 0) → 「東京」の行番号

INDEX+MATCHで#N/Aになるのはなぜ?

  • 検索値が見つからない
  • データ型が違う("1" ≠ 1)
  • 空白やスペースが含まれている可能性大

まとめ

  • INDEXMATCHを組み合わせると、自由度の高い検索が実現できる
  • VLOOKUPではできない「左検索」「列名指定」「柔軟な構造」に強い
  • 複数条件や列方向MATCHの活用で、業務レベルの表引きが可能に
  • #N/Aエラーや範囲外参照には、IFERRORなどの補助関数で対応を

正しく理解して使いこなせば、Excelでの検索処理が格段にパワーアップします。


参考リンク

Pick up

1

2022年5月3日頃より、一部のInstagramユーザーの間で、アプリを起動すると突然 「生年月日を追加」 という生年月日の入力を強制する画面が表示されるケースが急増しているようです。 この影響で、 ...

2

スマホでGoogle検索を利用しようとした際に、検索キーワードの候補として、 検索履歴ではなく「話題の検索キーワード」が表示される場合がありますよね。 この「話題の検索キーワード」に表示される検索キー ...

3

不在連絡かのような内容のSMS 「お客様が不在の為お荷物を持ち帰りました。こちらにてご確認ください http:// ~」 がまたまた届きました。 このメール、またまた増加しているようです。 ...

-人気アプリの不具合・使い方まとめ