VLOOKUP関数の使い方(スプレッドシート)|コードから商品名や単価を引く
※写真はイメージです
書き方
=VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])表のいちばん左の列から探したい値(コードなど)を見つけて、同じ行の別の列の値を返します。商品コードから商品名や単価を出す、のような使い方が定番です。
この図の表をダウンロード(Googleドライブにアップロードして開けます・問題と答えのシートつき)
引数の意味
| 引数 | 入れるもの | 図の例 |
|---|---|---|
| 検索キー | 探したい値 | E2 |
| 範囲 | 探す表。いちばん左の列で探す | A2:C4 |
| 番号 | 左から何列目の値を返すか | 2 |
| 並べ替え済み 省略できる | FALSEでぴったり同じものだけ | FALSE |
4つ目の FALSE は必ず付けてください。省略すると「だいたい近いもの」を探す動きになり、表が並んでいないとまちがった値が出ます。
別のシートの表から引く
=VLOOKUP(A2, 商品!A:C, 2, FALSE)範囲の前にシート名と「!」を付けます。商品!A:C のように列だけで指定すると、商品を足しても範囲を直さなくて済みます。シート名に空白があるときは '商品 一覧'!A:C のように ' で囲みます。
別のファイル(スプレッドシート)の表から引く
=VLOOKUP(A2, IMPORTRANGE("https://docs.google.com/…", "商品!A:C"), 2, FALSE)範囲のところにIMPORTRANGEを入れます。最初の1回だけ、セルを選んで「アクセスを許可」を押します。たくさんの行で使うと重くなるので、取り込み用のシートを1枚作ってIMPORTRANGEで取り込み、そこをVLOOKUPで引くほうが速いです。
全部の行にまとめてかける
=ARRAYFORMULA(IF(A2:A="", "", VLOOKUP(A2:A, 商品!A:C, 2, FALSE)))ARRAYFORMULAで囲むと、1つの式で下の行まで全部入ります。Googleフォームの回答のように、行が自動で増えるシートで便利です。
「〇〇を含む」で探す(ワイルドカード)
=VLOOKUP("*"&E2&"*", A2:C4, 2, FALSE)検索キーの前後を * でつなぐと、その文字を含むものを探します。
左側の列を返したいときは
VLOOKUPは、探す列より左の値は返せません。左の値がほしいときは XLOOKUP か、INDEXとMATCHの組み合わせを使います。
うまくいかないとき
1#N/A「…が見つかりませんでした」
探す値が表にありません。空白がまざっている、全角と半角がちがう、数字と文字がちがう、のどれかが多いです。
直し方TRIMで空白を消すか、表の列の表示形式をそろえます。見つからないときに空にするなら IFERROR で囲みます。
2#REF!「VLOOKUPの範囲外です」
番号が、範囲の列の数より大きいです。
直し方範囲を広げるか、番号を直します。
3下にコピーすると表がずれる
範囲が $ なしで、コピーするたびにずれています。
直し方$A$2:$C$4 のように $ を付けるか、A:C の列全体にします。
使えるバージョン
Excelと同じ書き方で使えます。スプレッドシートで作ったものをExcelの形式でダウンロードしても、そのまま動きます。
サンプルファイルで試す
「問題」のシートの黄色いセルに式を入れて、「答え」のシートと比べてください。
よくある質問
スプレッドシートのVLOOKUPの書き方は?
=VLOOKUP(検索キー, 範囲, 番号, FALSE) です。Excelと同じです。
別シートを参照するには?
範囲を 商品!A:C のように、シート名と「!」を付けて書きます。
別のファイルから引くには?
範囲にIMPORTRANGEを入れます。最初に「アクセスを許可」が必要です。
#N/Aを消すには?
IFERRORで囲んで、見つからないときは空にします。
一緒に覚えたい関数・操作
このページについて
操作の説明は、パソコンのブラウザで開いた日本語のGoogleスプレッドシートに合わせています。関数の働きはGoogleの公式ヘルプ(スプレッドシートの関数リスト)で確かめています。図はこのサイトで作ったもので、表の会社名・商品名・人名・URLは例です。このサイトはGoogleとは関係ありません。運営者情報