GoogleスプレッドシートのVLOOKUPの使い方(やさしい実例つき)
VLOOKUPは専門的に聞こえますが、やっていることは私たちが手作業でいつもやっていることと同じです。「このリストからこの名前を探して、隣の数字を教えて」。そう捉えれば簡単です。この記事では、書き方、わかりやすい実例、そして遭遇しがちなエラーの直し方を紹介します。
VLOOKUPがやること
VLOOKUP=Vertical(垂直)ルックアップ。範囲の先頭の列を下方向に探し、見つかった同じ行の、右にある別の列から値を返します。
書き方
=VLOOKUP(検索キー, 範囲, 列番号, 並べ替え済み)
- 検索キー — 探したいもの(商品名やIDなど)。
- 範囲 — 探す対象のセル範囲。この範囲の先頭列が、VLOOKUPが探しに行く列です。
- 列番号 — 範囲の何列目を返すか。1から数えます。範囲が
A:CでC列が欲しいなら、列番号は3です。 - 並べ替え済み — ほぼ常に
FALSEと書きます。「完全一致で探す」という意味です。TRUEは並べ替え済みデータでの近似一致用で、初心者がつまずく原因になります。まずはFALSEから。
実例
A列とB列に価格表があるとします。
| A(商品) | B(価格) |
|---|---|
| りんご | 120 |
| バナナ | 50 |
| さくらんぼ | 300 |
別のセル D2 に商品名を入力し、その価格を E2 に出したいなら、
=VLOOKUP(D2, A:B, 2, FALSE)
読み方はこうです。「D2 にあるものを、A列を下に向かって探せ。見つかったら、範囲の2列目(つまりB列)の値を返せ。完全一致で。」D2 が バナナ なら、E2 は 50 を返します。
4つのエラーと直し方
#N/A — 値が見つからない。 検索キーが先頭列にありません。たいていは打ち間違い、余分なスペース、または「文字列として保存された数値」と「本当の数値」の食い違いです。キーを TRIM() で囲むか、書式を確認しましょう。
違う列が返る。 列番号がずれています。列番号は範囲の中で1から数えることを思い出してください——スプレッドシートの列のアルファベットではありません。
#REF! — 列番号が大きすぎる。 3列の範囲に対して4列目を求めています。範囲を広げるか、列番号を下げましょう。
右にしか探せない。 VLOOKUPは検索列より右の列しか返せません。欲しい値が左にある場合、それが(下記の)XLOOKUPに切り替える一番の理由です。
$ で範囲を固定する
式を下方向にコピーするなら、範囲がずれないよう固定します。
=VLOOKUP(D2, $A:$B, 2, FALSE)
$ 記号は範囲を固定したまま、検索キー(D2)は各行に合わせて動きます。
XLOOKUPを使うべき場面
GoogleスプレッドシートにはXLOOKUPもあり、より柔軟です。
=XLOOKUP(D2, A:A, B:B)
検索列と返す列を別々に指定するので、左でも右でも探せて、初期設定が完全一致で、「見つからないとき」のメッセージも設定できます。ゼロから作るならXLOOKUPのほうがすっきりしていることが多いです——ただしVLOOKUPは既存のシートに無数にあるので、両方知っておく価値があります。
まとめ
- 範囲の先頭列がVLOOKUPの探す場所。
- 列番号は範囲の中で1から数える。
- 完全一致には
FALSE。 - コピーするときは
$で範囲を固定。 - 左を探したい・つまずきを減らしたいならXLOOKUP。
上の例を空のシートに貼って数字を変えてみれば、5分で身につきます。