Google スプレッドシートの VLOOKUP 関数 チュートリアル
このガイドでは、データ検索のためにGoogle SheetsでのVLOOKUPの使い方と、スプレッドシートの数式を使わずにSurveyMarsのVlookup survey linkingが回答データの照会をどのようにサポートするかを説明します。
1. VLOOKUP の理解
スプレッドシート内の情報の一部が既にわかっている場合、VLOOKUPは行単位で関連する値を検索します。例えば、オレンジを買うときに「Orange」で価格表を検索して価格を調べる、といった用途です。
VLOOKUP(縦方向検索)は、範囲の最左列でキーを検索し、その行の右に数えてN列目の値を返します。ID、注文番号、電話番号、社員番号を名前、価格、ステータス、その他の項目に照合する際に使用します。
Tip: 検索キーの列はrange内の最も左側の列でなければなりません。VLOOKUPは右側の列のみを参照するため、右側の列を使って左側の列を検索することはできません。
構文
=VLOOKUP(search_key, range, index, [is_sorted])
search_key: 検索する値 — セル参照か文字列/数値のリテラル。これはrangeの最初の列に存在する必要があります。
range: キー列と返却列を含むデータ範囲。名前付き範囲も使えます。別シートの場合はSheet2!$A$2:$B$100のように指定します。
index: 返す列番号。rangeの左端の列を1として数えます。
is_sorted(省略可): 完全一致にはFALSE(推奨)。近似一致にはTRUE(事前に最初の列を昇順で並べ替えてください)。省略するとデフォルトはTRUEです。
2. VLOOKUP の例
例 1: 果物名をG9に入力し、次の数式でB4:D8の価格(価格は3列目)を検索します:
=VLOOKUP(G9, B4:D8, 3, FALSE)
=VLOOKUP("Apple", B4:D8, 3, TRUE)

以下の例は Google の公式ヘルプに基づいています。タイトルをクリックすると開閉できます。サンプルスプレッドシートのコピーで練習するには、試してみるをクリックしてください。
基本的な VLOOKUP の例
VLOOKUP で異なる検索キーを検索
VLOOKUP を使って「Orange」や「Apple」の価格を探します。

注意: 「Apple」や「Orange」のように異なる検索キーを使えます。エラーではなく値を返すには、各キーがrangeの最初の列に存在する必要があります。キーを直接入力する代わりに、セル参照(例: G9)を使うこともできます。
| 説明 | 数式と結果 |
|---|---|
search_key は「Orange」 | =VLOOKUP("Orange", B4:D8, 3, FALSE)結果 = $1.01 |
search_key は「Apple」 | =VLOOKUP("Apple", B4:D8, 3, FALSE)結果 = $1.50 |
search_key がセル参照で「Apple」(G9) | =VLOOKUP(G9, B4:D8, 3, FALSE)結果 = $1.50 |
VLOOKUP で異なる列インデックスを検索
index を変えて、2列目(数量)で「Orange」の数量を検索します。

注意: range内の列は左から右へ1から番号が振られます。欲しい値の列番号を指定してください。例えば列2は数量です。
| 説明 | 数式と結果 |
|---|---|
index は 2オレンジの数量を探す — rangeの2列目。 | =VLOOKUP(G3, B4:D8, 2, FALSE)結果 = 5 |
VLOOKUP の完全一致と近似一致
- 完全一致(FALSE):ID を正確に一致させます。
- 近似一致(TRUE):最も近い ID を見つけます(最初の列は昇順に並べ替える必要があります)。

注意: たとえば ID 102 を検索してもテーブルに存在しない場合、近似一致は 101(102 より小さい最大の値)を返すことがあります。最初の列が昇順になっていないと結果が誤る可能性があります。日常的には完全一致を使ってください。
重要: 近似一致を使う前に、検索キー列を昇順で並べ替えてください。
| 一致タイプ | 数式と結果 |
|---|---|
| 完全一致 | =VLOOKUP(G6, A4:D8, 2, FALSE)結果 = "Apple" |
| 近似一致 | =VLOOKUP(G3, A4:D8, 2, TRUE) または第4引数を省略結果 = "Banana" |
よくある VLOOKUP のシナリオ
VLOOKUP のエラー値を置き換える
検索キーが見つからないときは、VLOOKUP を IFNA() で囲んで #N/A を任意のテキストに置き換えます。

| 説明 | 数式と結果 |
|---|---|
最初は「Pencil」が Fruit 列にないため VLOOKUP は #N/A を返します。IFNA() は #N/A を第2引数で指定した値(この例では NOT FOUND)に置き換えます。 | =IFNA(VLOOKUP(G3, B4:D8, 3, FALSE), "NOT FOUND")結果 = NOT FOUND |
Tip: IFERROR() を使うと #REF! など他のエラーも処理できます。
複数条件で VLOOKUP を使う
VLOOKUP は直接複数条件で一致できません。ヘルパー列を追加し、列を&で結合して単一のキーを作成します。

| ステップ | 数式と結果 |
|---|---|
1. 「First Name」と「Last Name」を&で結合してヘルパー列を作成します。 | =C4&D4, その後 B4 から B8 にオートフィルしてヘルパー列を作ります。 |
| 2. セル B7(JohnLee)を検索キーとして使います。 | =VLOOKUP(B7, B4:E8, 4, FALSE)結果 = Support |
ワイルドカードや部分一致を VLOOKUP で使う
? は1文字に一致し、* は任意の連続に一致します。FALSE(完全一致)と一緒に使います。

| 説明 | 数式と結果 |
|---|---|
"St*" は St で始まる名前(例: "Steve"、"St1"、"Stock"、"Steeeeeeve")に一致します。 | =VLOOKUP("St*", B4:D8, 3, FALSE)結果 = Marketing |
3. トラブルシューティング
以下から当てはまる状況を確認してください。多くの問題はキー列の位置、書式、完全一致と近似一致の違い、範囲の固定の有無、の4点に起因します。
1. データがテーブルにあるのに、それでも #N/A が返されるのはなぜですか?
A: 順に確認してください — ① 検索値はrangeの最も左の列にありますか? ② 文字列と数値の書式は一致していますか(例: 001 と 1)? ③ 先頭や末尾に余分なスペースはありませんか? ④ 元データに値が確かに含まれていますか? 再度検索する前に TRIM でスペースを削除し、VALUE や TEXT で書式を揃えてください。
2. 数式が突然 #REF! を表示します—間違った列番号を使いましたか?
A: 多くの場合 index が range の列数より大きくなっています。range の最左列から再度数えて列番号を修正してください。
3. #VALUE! が表示されます—数式に何が問題ですか?
A: 一般的な原因: index が1未満である、第四引数が TRUE か FALSE でない、range が無効。index を1以上にし、第四引数を FALSE(完全一致)に設定してください。
4. 結果は返るがシートと一致しないのはなぜですか?
A: TRUE(近似一致)を使っていないか確認してください — 日常的には FALSE に切り替えてください。最初の列に重複するキーがあると VLOOKUP は最初の一致のみを返します。多くの行で同じ誤った値が表示される場合、数式をコピーしたときに range がずれている可能性があります。
5. 数式を下にコピーすると最初の行だけ正しいのはなぜですか?
A: 検索範囲を絶対参照(例: $B$4:$D$100 や シート間は Sheet2!$A$2:$B$500)で固定してください。これによりフィルダウンしても範囲が動きません。
6. 名前から社員IDを検索したい—なぜ VLOOKUP が失敗するのですか?
A: VLOOKUP は左から右へしか検索できません;キー列は range の左端でなければなりません。ID 列を左に移動するか、INDEX + MATCH や XLOOKUP を使ってください。数式がエラーになる場合は、ロケールによって区切り文字がカンマかセミコロンか(地域によって ; を使うことがあります)を確認してください。
4. SurveyMars:Vlookup サーベイ連携による回答データの照会
過去の回答やプロファイルからフィールドを取得して回答者がアンケートに回答している間に値を補完する場合、シートへエクスポートして VLOOKUP を書く必要はありません。SurveyMars の Vlookup survey linking はプラットフォーム内で 回答データの照会 を処理します:回答者が照合キーを入力すると、システムがリンクされたサーベイを検索し、設定した質問を自動入力します。
VLOOKUP との対応関係
| VLOOKUP の概念 | SurveyMars の設定 |
|---|---|
range (lookup range) | リンクされたサーベイのデータ |
search_key (lookup value) | 回答者が入力する照合フィールド |
index (return column) | 自動入力する質問 |
ユースケース
- 既に収集されているメンバーや従業員のプロファイル:新しいアンケートがいくつかの照合キーから基本情報を取得します
- イベント登録の確認や不足情報の補完
- 以前の回答のフィールドに基づく複数波の調査の整合
設定方法
- ビジュアル設定:リンクするサーベイを選び、エディタでフィールドを埋めます — 数式は不要です
- 回答時の照合:送信前に照合して自動入力することで、エクスポート&マージの手間を減らします
- アクセス制御:データは SurveyMars に残るので、誰が何を見られるか管理できます
リンクされたサーベイの設定、照合フィールド、質問の自動入力を設定しますか?
FAQ
Q: 電話番号や社員IDが同一に見えるのに—なぜ一致しないのですか?
A: 値は見た目は同じでも型が異なることがあります—一方は文字列、もう一方は数値、あるいはスペースや先頭のゼロが含まれている場合があります。=TRIM(A1) で比較してセルが本当に等しいか確認し、書式を揃えるには VALUE や TEXT を使ってください。それでも #N/A が出る場合は、上記のセクション3を順に確認してください。
Q: 一致しないときにシートにずらっと #N/A を表示したくない—もっと親切な方法はありますか?
A: VLOOKUP を IFNA で囲んで、見つからないときにカスタムテキストを表示します。例: =IFNA(VLOOKUP(G3, B4:D8, 3, FALSE), "Not found")。完全な例はセクション2の「VLOOKUP のエラー値を置き換える」を参照してください。
Q: 価格表が別のシートにある—数式はどう書けばいい?
A: シート名をrangeの前に付けます。例: =VLOOKUP(G9, PriceList!$A$2:$D$200, 3, FALSE)。シート名にスペースがある場合は引用符で囲みます: '2024 Prices'!$A$2:$D$200。コピーしても範囲がずれないように $ で固定してください。
Q: 2つのリストを照合するには VLOOKUP と INDEX+MATCH のどちらを使うべきですか?
A: キーが範囲の最左列にあり、右側の列だけが必要なら VLOOKUP で十分です。右側の列(例: 名前)から左側の列(例: 社員ID)を検索する場合は INDEX + MATCH や XLOOKUP を使ってください。Google Sheets は XLOOKUP をサポートしており、構文も簡単です。
Q: 回答者が電話番号を入力して名前を自動入力させたい—エクスポートして Excel で VLOOKUP を使う必要はありますか?
A: いいえ。Vlookup survey linking 質問を SurveyMars に追加し、リンクするサーベイと自動入力するフィールドを設定すれば、回答中に照合が実行され、自動入力されます—エクスポートや数式は不要です。セクション4を参照するか、上の緑のボタンをクリックして公式ヘルプ記事を参照してください。