cellio

GoogleスプレッドシートのVLOOKUP関数の使い方と具体例

GoogleスプレッドシートのVLOOKUP関数の使い方をわかりやすく解説。FALSEによる完全一致、別シートや別ファイル(IMPORTRANGE)の参照、#N/Aエラー対策、XLOOKUPやARRAYFORMULAの活用法まで網羅。

著者 Ayoub Farid · · 4 分で読めます

GoogleスプレッドシートのVLOOKUP関数は、Excelとまったく同じように動作します。表の左端の列から特定の値を検索し、同じ行の指定した列にあるデータを取り出すことができます。

構文

=VLOOKUP(search_key, range, index, [is_sorted])
  • search_key(検索キー): 探したい値
  • range(範囲): 検索対象の表(検索列を必ず一番左端にします)
  • index(指数): 取得したい列番号(範囲の一番左の列を1と数えます)
  • is_sorted(並べ替え済みか): 完全一致で検索する場合は FALSE を指定します(通常はFALSEを使用します)

具体例

A列に商品コード、B列に商品名、C列に価格が入力されており、F2セルに検索したい商品コードが入っている場合:

=VLOOKUP(F2,$A$2:$C$100,3,FALSE)

数式をオートフィルで下にコピーする前に、セル範囲を「$」で固定して絶対参照にしておきましょう。詳しくはスプレッドシートの絶対参照の使い方をご覧ください。

別のシート(タブ)から検索する

=VLOOKUP(F2,Prices!$A$2:$C$100,3,FALSE)

シート名にスペースが含まれる場合は、'Price list'!$A$2:$C$100 のようにシングルクォーテーションで囲む必要があります。

別のスプレッドシートファイルから検索する

=VLOOKUP(F2,IMPORTRANGE("spreadsheet_url","Prices!A2:C100"),3,FALSE)

初回のみ、外部シートへの「アクセスを許可」するかどうかの確認メッセージが表示されます。

データが見つからない場合の処理

=IFERROR(VLOOKUP(F2,$A$2:$C$100,3,FALSE),"Not found")

#N/Aエラーの対処法

原因はExcelの場合と同様です。不要な前後のスペース、文字列として保存された数値、引数「FALSE」の指定忘れ、検索列が範囲の一番左にない、などが考えられます。詳細はVLOOKUPが機能しない原因と解決策をご覧ください。

スプレッドシートのXLOOKUP関数

GoogleスプレッドシートでもXLOOKUP関数が使えます:

=XLOOKUP(F2,$A$2:$A$100,$C$2:$C$100,"Not found")

左側の列を検索して値を取得することも可能で、列番号を数える必要もありません。詳しくはXLOOKUPの使い方をご覧ください。

列全体をまとめて検索する

=ARRAYFORMULA(IFERROR(VLOOKUP(F2:F50,$A$2:$C$100,3,FALSE),""))

詳しくはARRAYFORMULAの使い方をご覧ください。

よくある質問

GoogleスプレッドシートでVLOOKUP関数を使うにはどうすればよいですか?

=VLOOKUP(検索キー,範囲,列番号,FALSE) と記述し、検索する列がセル範囲の左端になるように指定します。

VLOOKUPで別のシートを検索できますか?

はい、同じファイル内の別タブであればシート名を指定して直接参照できます。別ファイルのスプレッドシートの場合は IMPORTRANGE 関数と組み合わせて検索可能です。

GoogleスプレッドシートのVLOOKUPは大文字と小文字を区別しますか?

区別しません。

GoogleスプレッドシートでXLOOKUPは使えますか?

はい、Excelと同じ構文で問題なく使用できます。

あわせて読みたい