エクセル VLOOKUP関数
excel-vlookup• 商品コードを選ぶと、VLOOKUPが値を探す流れをアニメーションで表示。 • 引数(検索値・範囲・列番号・FALSE)を例で学べます。
💡 黄色いセル(G2)を変えるだけで、3つの結果が同時に自動で変わります。ダウンロードしたエクセルでも同じように動きます。
VLOOKUP はこう読みます
「検索値を、この表の一番左の列で探し、その行の N 番目の列の値を返す」。
IFERROR で囲むと、存在しないコードでもエラー(#N/A)ではなく「コードなし」と表示されます。
VLOOKUPでつまずきやすいところ
VLOOKUPは実務で最もよく使われる関数ですが、つまずく箇所はだいたい決まっています。1つ目は、探す値が必ず範囲の一番左の列になければならないというルールです。取得したい値が探す値より左にある場合、VLOOKUPではできず、INDEX/MATCHの出番になります。
2つ目は範囲の固定です。数式を下にドラッグすると範囲も一緒にずれ、下の行の結果が狂います。範囲を $B$2:$D$100 のように $ で固定すれば、どこにコピーしてもそのまま保たれます。
3つ目は最後の引数です。0(またはFALSE)を省くと近似一致を探すため、並べ替えていない表では見当違いの値が返ります。完全一致だけを探すなら必ず0を書きましょう。見つからないときの #N/A は IFERROR で囲めば好きな文言に変えられます。
よくある質問
VLOOKUPで #N/A が出るのはなぜですか?
探す値が範囲の一番左の列に見つからない、という合図です。確かにあるのに出る場合は、どちらかに空白が付いている、片方が数値で片方が文字列として保存されている、といった原因が多いです。TRIM で空白を取り、表示形式をそろえれば大半は解決します。
#REF! エラーはどう直しますか?
3つ目の引数である列番号が、範囲の列数より大きいときに出ます。$A$2:$D$8 は4列なので、5以上を指定すると #REF! になります。参照していた列を削除したときも同じエラーになるため、範囲と列番号を合わせて確認してください。
#VALUE! はどういう意味ですか?
列番号の位置に0や負の数、数値でない値が入っているという意味です。引数を1つ書き忘れて順番がずれたときにもよく出ます。上のデモで列番号が2・3・4と変わり、それぞれ違う列を取ってくる様子を見ると引数の位置を覚えやすくなります。
見つからないときにエラーではなく空欄や0にするには?
=IFERROR(VLOOKUP(...),"") のように囲めば、エラーの代わりに指定した値が表示されます。0にしたいときは二重引用符の位置に0を書きます。ただしエラーを隠すとデータの誤りまで見えなくなるので、原因を確かめてから使うのが安全です。
条件が2つある場合もVLOOKUPで探せますか?
VLOOKUPの探す値は1つだけなので、=A2&B2 のように2つの値をつないだ作業列を作り、その列を範囲の先頭に置いて検索するのが定番です。作業列を増やしたくない場合は、INDEX/MATCH や XLOOKUP の方がずっと扱いやすくなります。
上の例をエクセルで実際に開けますか?
ダウンロードボタンを押すと、デモと同じ表に実際に動く IFERROR と VLOOKUP の数式が入った xlsx が保存されます。検索用のセルのコードを変えると結果も変わるので、数式を覚えたてのころの練習ファイルとして使えます。