Home / Google / 【2026年最新版】Googleスプレッドシートでのデータ検索と照合方法【完全ガイド】

【2026年最新版】Googleスプレッドシートでのデータ検索と照合方法【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

Googleスプレッドシートで大量のデータを管理していると、「この商品コードに対応する商品名を別シートから引っ張ってきたい」「社員番号から部署名を自動表示したい」といった場面が頻繁に出てきます。そんなときに力を発揮するのがデータ検索・照合関数です。

2026年現在、Googleスプレッドシートには従来のVLOOKUPに加え、より強力なXLOOKUPやINDEX+MATCHも使えるようになっています。それぞれの使い分けを理解することで、データ管理の効率が大きく向上します。

この記事では、VLOOKUP・XLOOKUP・INDEX+MATCHの基本的な使い方から実用的な活用例、よくあるエラー(#N/A等)の対処法まで、スクリーンショットを交えてわかりやすく解説します。

GoogleスプレッドシートのVLOOKUP基本的な使い方

この記事でわかること

  • VLOOKUP関数の書き方と基本的な使い方
  • XLOOKUPとVLOOKUPの違いと使い分け
  • INDEX+MATCH関数で縦横両方向の検索を行う方法
  • #N/Aなどエラーが出た場合の対処法
  • 名簿照合・売上集計などの実用例

データ検索・照合関数の全体像

Googleスプレッドシートで使えるデータ検索・照合関数を整理しておきましょう。

関数名 検索方向 特徴 推奨度
VLOOKUP 縦方向(列) シンプルで広く使われている。検索列は必ず左端 ★★★
HLOOKUP 横方向(行) VLOOKUPの横版。検索行は必ず最上行 ★★
XLOOKUP 縦・横両方 VLOOKUPの進化版。列順序の制約なし ★★★★
INDEX+MATCH 縦・横両方 最も柔軟。大規模データに強い ★★★★★
MATCH 縦・横どちらでも 一致する位置(行番号/列番号)を返す ★★★(単体よりINDEXと組み合わせ)

VLOOKUP関数の基本と使い方

VLOOKUP関数の構文

=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
引数 意味
検索値 探したい値(セル参照 또는 直接入力) A2、”商品001″など
範囲 検索するデータが入っている表全体 Sheet2!A:C、$A$2:$C$100など
列番号 範囲の何列目の値を返すか(左から数えた番号) 2(2列目)、3(3列目)など
検索の型 FALSEまたは0 = 完全一致(推奨)/ TRUEまたは1 = 近似一致 FALSE(通常はこれを指定)

VLOOKUP関数の使用例

商品コードを検索して商品名と価格を表示する例を見てみましょう。

以下の商品マスターが「Sheet2」のA〜C列に入っているとします。

A列(商品コード) B列(商品名) C列(価格)
P001 ノートPC 98000
P002 マウス 2800
P003 キーボード 5500

Sheet1のA2に「P002」と入力されているとき、B2に商品名を表示するには以下の式を使います。

=VLOOKUP(A2, Sheet2!A:C, 2, FALSE)

価格を表示するには列番号を3に変えます。

=VLOOKUP(A2, Sheet2!A:C, 3, FALSE)

VLOOKUPの制約・注意点

  • 検索列は範囲の左端(第1列)でなければならない
  • 左方向への検索はできない(右方向のみ)
  • 列を追加・削除すると列番号がずれる
  • 大規模データでは処理が遅くなることがある
XLOOKUPとINDEX+MATCHの違いと使い分け

XLOOKUP関数の基本と使い方

XLOOKUPはVLOOKUPの進化版で、2023年頃からGoogleスプレッドシートでも使えるようになりました。VLOOKUPの制約をほぼ解消した強力な関数です。

XLOOKUP関数の構文

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合の値], [一致モード], [検索モード])
引数 意味
検索値 探したい値
検索範囲 検索する列(または行)の範囲のみ指定
戻り範囲 返したい値が入っている列(または行)の範囲
見つからない場合の値(省略可) 一致するデータがない場合に表示する値(例: “データなし”)
一致モード(省略可) 0=完全一致(デフォルト)、-1=完全一致または次に小さい、1=完全一致または次に大きい、2=ワイルドカード

XLOOKUPの使用例

同じ商品マスター(Sheet2)から商品名を検索する場合、XLOOKUPはこのように書きます。

=XLOOKUP(A2, Sheet2!A:A, Sheet2!B:B, "該当なし")

VLOOKUPと比べて列番号の指定が不要で、戻り値の列を直接指定できます。また、検索列より左の列を戻り値として指定することも可能です(VLOOKUPでは不可)。

VLOOKUPとXLOOKUPの比較

機能 VLOOKUP XLOOKUP
左方向への検索 ❌ 不可 ✅ 可能
見つからない場合の処理 ❌ 別途IFERROR必要 ✅ 引数で直接指定可
列挿入時のずれ ❌ 列番号がずれる ✅ 影響なし
複数列を一度に返す ❌ 不可 ✅ 可能
後ろから検索 ❌ 不可 ✅ 可能(検索モード=-1)
古いスプレッドシートとの互換性 ✅ 広く対応 ⚠️ 比較的新しい機能

INDEX+MATCH関数で縦横両方向に検索する

INDEX+MATCHの組み合わせは、最も柔軟なデータ検索の方法です。大規模なデータや複雑な検索条件にも対応できます。

MATCH関数の構文

=MATCH(検索値, 検索範囲, [一致の型])

MATCH関数は、検索値が検索範囲の何番目に位置するかを数値で返します。INDEX関数と組み合わせることで強力な検索が可能になります。

INDEX関数の構文

=INDEX(配列, 行番号, [列番号])

INDEX関数は、指定した配列(範囲)の中から、指定した行・列番号の値を返します。

INDEX+MATCHの組み合わせ例

商品コードで商品名を検索するINDEX+MATCH式は以下の通りです。

=INDEX(Sheet2!B:B, MATCH(A2, Sheet2!A:A, 0))

VLOOKUPと同じ結果が得られますが、検索列(A列)が戻り値の列(B列)より左でも右でも構いません。

縦横両方向の2次元検索

INDEX+MATCHを2つ組み合わせることで、行と列の両方向から値を検索できます。これはVLOOKUPやXLOOKUP単体では難しい操作です。

=INDEX(データ範囲, MATCH(行検索値, 行ラベル列, 0), MATCH(列検索値, 列ラベル行, 0))

例えば、月別・商品別の売上マトリクスから「3月のP002の売上」を取り出す場合に活用できます。

照合関数の#N/Aエラー対処と実用例

エラーの対処法(#N/A・#REF!・#VALUE!)

VLOOKUP・XLOOKUPを使っていると様々なエラーが発生します。代表的なエラーの原因と対処法を解説します。

エラー 主な原因 対処法
#N/A 検索値が範囲内に見つからない 検索値のスペース・大文字小文字・全半角を確認。IFERROR関数でエラー表示を変更する
#REF! 列番号が範囲外(指定した列数より大きい) VLOOKUPの列番号が範囲の列数を超えていないか確認する
#VALUE! 引数の型が間違っている 列番号に数値以外が入力されていないか確認する
0が返る 対応するセルが空白 参照先のデータが入力されているか確認する
想定と違う値が返る 近似一致(TRUE)が指定されている VLOOKUPの第4引数を「FALSE」または「0」に変更する

IFERROR関数でエラーを非表示にする

#N/Aなどのエラーを表示させず、代わりにわかりやすいメッセージを表示させたい場合はIFERROR関数で囲みます。

=IFERROR(VLOOKUP(A2, Sheet2!A:C, 2, FALSE), "該当なし")

この式では、VLOOKUPでエラーが発生した場合に「該当なし」と表示されます。XLOOKUPの場合は第4引数に直接指定できるためIFERROROは不要です。

実用例:名簿照合と売上集計

実用例1:参加者名簿の照合

イベント参加者リスト(A列:氏名)と登録者マスター(別シート:氏名・所属・連絡先)を照合し、参加者の所属を自動表示するケースです。

=IFERROR(VLOOKUP(A2, 登録者マスター!A:C, 2, FALSE), "未登録")

「未登録」と表示された行は登録者マスターにない人物として確認できます。

実用例2:注文データと商品マスターの結合

注文データに商品コードしかない場合、VLOOKUPで商品名・単価を自動入力し、金額を自動計算する構成が便利です。

商品名: =IFERROR(VLOOKUP(B2, 商品マスター!A:D, 2, FALSE), "不明")
単価:   =IFERROR(VLOOKUP(B2, 商品マスター!A:D, 3, FALSE), 0)
金額:   =C2 * D2   ← 数量 × 単価

実用例3:複数条件での照合(XLOOKUP + 連結)

「商品コード」と「月」の2つの条件を組み合わせて検索したい場合は、検索値を連結させる方法が有効です。

=XLOOKUP(A2&B2, 売上データ!A:A&売上データ!B:B, 売上データ!C:C, 0)

マスターシート側でもA列とB列を連結した検索キー列(例: P001_4月)を作成するか、配列数式として扱うことで複数条件照合が実現できます。

🛒

この記事に関連するおすすめ商品

Google Pixel Tablet WiFi 128GB Android タブレット

約79,800円〜

Googleスプレッドシートの関数操作が快適なGoogle純正タブレット



Amazonで探す

Dell 27インチ モニター フルHD IPS FHD

約25,000〜35,000円

Googleスプレッドシートで複数列の照合・参照作業を広く確認できる大画面モニター



Amazonで探す

ロジクール MX Master 3S ワイヤレスマウス 静音 高精度

約12,000〜18,000円

Googleスプレッドシートの大量データ操作が快適な高精度ワイヤレスマウス



Amazonで探す

※ 価格は変動する場合があります。最新価格はリンク先でご確認ください

よくある質問(FAQ)

Q1:VLOOKUPとXLOOKUPはどちらを使うべきですか?

新規で作成するシートであればXLOOKUPを推奨します。列順の制約がなく、見つからない場合の処理も簡単で、より直感的に書けます。ただし、古いバージョンのExcelや他者と共有するファイルではXLOOKUPが使えない場合があるため、互換性が重要な場合はVLOOKUPを使いましょう。

Q2:VLOOKUP で同じ検索値が複数ある場合、どの値が返されますか?

VLOOKUPは常に最初に見つかった行の値を返します。同じ検索値が複数ある場合に全件取得したい場合は、FILTERやQUERY関数が適切です。

Q3:別ファイル(スプレッドシート)のデータをVLOOKUPで参照できますか?

はい、IMPORTRANGE関数と組み合わせることで別ファイルのデータを参照できます。まずIMPORTRANGEで別シートのデータを取り込み、その範囲をVLOOKUPの参照先として使用します。ただし、最初にアクセス許可が必要です。

Q4:データ量が多いとVLOOKUPが重くなります。改善方法はありますか?

以下の方法で改善できます。まず参照範囲を列全体(A:C)ではなく具体的な範囲(A1:C1000)に絞ると計算が速くなります。また、INDEX+MATCHは大量データでVLOOKUPより高速です。データが固定なら値として貼り付けて数式を排除する方法も有効です。

Q5:スマートフォンのGoogleスプレッドシートアプリでもVLOOKUPは使えますか?

はい、AndroidおよびiOSのGoogleスプレッドシートアプリでもVLOOKUP・XLOOKUP・INDEX+MATCHはすべて使用できます。入力補完機能は若干PC版より少ないですが、既存の数式の確認・編集は問題なく行えます。

まとめ

Googleスプレッドシートのデータ検索・照合関数を使いこなすことで、手作業でのコピー&ペーストや目視確認が不要になり、作業効率が大幅に向上します。

今回のポイントをまとめます。

  • VLOOKUP:シンプルで広く使われる。検索列は必ず左端
  • XLOOKUP:VLOOKUPの進化版。列順の制約なし・エラー処理が簡単
  • INDEX+MATCH:最も柔軟。縦横両方向の検索・大規模データに強い
  • エラー(#N/A等)はIFERROR関数で見やすく処理できる
  • 複数条件の照合はXLOOKUPの連結または配列数式で対応

まずはVLOOKUPの基本をマスターし、慣れてきたらXLOOKUPやINDEX+MATCHへとステップアップしていきましょう。データ量が増えるほど自動化の恩恵は大きくなります。

Check Also

Google ChromeパスワードマネージャーGoogle Password Managerの使い方

【2026年最新版】Google ChromeのパスワードマネージャーGoogle Password Managerの使い方【完全ガイド】

【2026年最新版】Googl …