VLOOKUP関数の使い方
=VLOOKUP(探す値, 探す範囲, 何列目, FALSE) と書きます。範囲のいちばん左の列を縦に探し、 指定した列の値を返します。
書式
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])引数の意味
| 引数 | 意味 | 指定の例 | つまずきやすい点 |
|---|---|---|---|
| 検索値 | 探したい値 | A8 | 範囲の左端の列にある値でないと見つからない |
| 範囲 | 探す表の全体 | $A$2:$C$5 | $ を付けないとコピーでずれる |
| 列番号 | 範囲の左から数えた列の位置 | 2 | シート全体の列番号ではなく、範囲内での位置 |
| 検索方法 | FALSE=完全一致 / TRUE=近似一致 | FALSE | 省略すると TRUE(近似一致)になる |
最小の例
コード表(A2:C5)から、A8 のコードに対応する商品名を取り出す場合はこう書きます。
=VLOOKUP(A8, $A$2:$C$5, 2, FALSE)使うときの手順
- 結果を表示したいセルを選び、= に続けて
VLOOKUP(と入力します。 - 探したい値が入っているセル(例:
A8)をクリックし、, を入力します。 - 探す表の範囲をドラッグで選び、F4 を押して
$A$2:$C$5のように固定します。 - , のあとに取り出したい列の番号(左から数えた位置)を入力します。
- , に続けて
FALSEを入力し、) で閉じて Enter を押します。
第4引数を省略すると TRUE(近似一致)になります。 この場合、探した値が見つからなくてもエラーにならず、「それより小さい中で最大の値」の行を返してしまいます。 エラーが出ないぶん気づきにくく、実務で最も事故が起きるところです。 完全一致で探すときは必ず FALSE(または 0)を書きます。
やってみる
引数の順序と FALSE の指定は、読むだけでは身につきません。実際に入力して確認します。
よくある失敗
- #N/A になる
検索値が範囲の左端の列に無いのが最も多い原因です。 そのほか、見た目が同じでも片方が数値・片方が文字列になっている、余分な空白が入っている、というケースもあります。
- #REF! になる
列番号が範囲の列数を超えています。
A2:C5は3列なので、 指定できるのは1〜3です。 - 下にコピーしたら結果がおかしくなる
範囲に
$が付いていません。A2:C5のままコピーするとA3:C6のようにずれます。範囲を選んだ状態で F4 を押して固定します。 - エラーではないが、明らかに違う値が返る
第4引数を省略した(=近似一致になった)可能性が高いです。
FALSEを追加してください。 - 左側の列を取り出したい
VLOOKUP は範囲の左端より左を返せません。XLOOKUP を使うか、 INDEX と MATCH を組み合わせます。
仕事ならどれを使う?(XLOOKUPとの違い)
| 観点 | VLOOKUP | XLOOKUP |
|---|---|---|
| 左側の列を返す | できない | できる |
| 既定の検索方法 | 近似一致(危険) | 完全一致 |
| 列を挿入したとき | 列番号がずれて壊れる | 範囲で指定するので壊れにくい |
| 見つからないときの処理 | IFERROR が必要 | 第4引数で指定できる |
| 使える環境 | すべてのバージョン | Microsoft 365 / Excel 2021 以降 |
新しく書くなら XLOOKUP が安全です。 ただし Excel 2019 以前を使っている人にファイルを渡す場合は、 XLOOKUP が動かないため VLOOKUP を選びます。誰がそのファイルを開くかで決めてください。
Googleスプレッドシートの場合
Googleスプレッドシートでも VLOOKUP は同じ書式で使えます。XLOOKUP も利用できます。