エクセルで、表から、条件に合うデータを探して取り出すには、VLOOKUP関数を使います。商品名から価格を探すなら、=VLOOKUP(G3,$C$3:$D$8,2,FALSE) のように、「探す値」「探す範囲」「列番号」「FALSE(完全一致)」の4つを指定します。
この記事では、VLOOKUPの基本、列番号の数え方、「#N/A」を出さない方法、複数条件で探す方法、別シートから探す方法、一致しないときの原因を、1つの表を使って説明します。下の練習ツールで、探す値を書き換えて、結果がどう変わるかを試せます。
VLOOKUPの使い方|やりたいこと別の式
| やりたいこと | 式(例) | ポイント |
|---|---|---|
| 商品名から価格を探す | =VLOOKUP(G3,$C$3:$D$8,2,FALSE) | 探す列は、範囲の一番左に置きます。 |
| 2つの条件で探す | =VLOOKUP(G2&G3,$A$3:$D$8,4,FALSE) | 2つの条件を結合した「キー」の列を作ります。 |
| 見つからないときを、表示しない | =IFERROR(VLOOKUP(…),”該当なし”) | #N/A を、好きな文字に置き換えます。 |
| 列番号を、自動で数える | =VLOOKUP(…,COLUMNS($A$3:$D$3),FALSE) | 範囲の列数を、COLUMNS関数で数えます。 |
| 別のシートから探す | =VLOOKUP(G3,Sheet2!$C$3:$D$8,2,FALSE) | 範囲の前に、「シート名!」を付けます。 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
VLOOKUP関数の基本(商品名から価格を探す)
「みかん」(G3)の価格を、表(C3:D8)の中から、探して取り出します。結果は、G5セルに求めます。

「みかん」は、表に2行あります(国産と輸入)。VLOOKUPは、上から探して、最初に見つかった行の値を返すので、国産の 80 になります。範囲に「$」を付けて、固定しておくと、下へコピーしても、範囲がずれません。詳しくは、VLOOKUP関数の使い方を参照してください。
列番号の数え方と、4つ目の引数(完全一致と近似一致)
3つ目の引数の列番号は、「探す範囲の、左端から数えて何列目か」です。表全体の列番号ではありません。C3:D8 を範囲にしたときは、C列が1、D列が2です。範囲を、A3:D8 に広げると、D列は4になります。
4つ目の引数は、FALSE が「完全一致」、TRUE(省略も同じ)が「近似一致」です。商品名やコードで探すときは、FALSE を指定します。近似一致は、点数でランクを決めるときなどに使います。詳しくは、VLOOKUPの近似一致の使い方を参照してください。
「#N/A」を表示しない(IFERROR関数・IFNA関数)
探す値が表にないと、VLOOKUPは、「#N/A」を返します。表の中に、「もも」はないので、次の式では、「#N/A」になります。
「#N/A」を、「該当なし」のような文字に置き換えるには、IFERROR関数で、VLOOKUPを囲みます。
結果は 該当なし です。IFERROR関数は、すべてのエラーを置き換えます。「#N/A」だけを置き換えたいときは、IFNA関数を使います。詳しくは、IFERROR関数の使い方、IFNA関数の使い方を参照してください。
▶ この式(G7)を、上の練習ツールで試す / この式(G8)を、上の練習ツールで試す
複数の条件で探す(キーの列を作る)
VLOOKUPは、1つの値でしか、探せません。「輸入の、みかん」のように、条件が2つあるときは、2つを結合した「キー」の列を作って、そのキーで探します。キーの列は、探す範囲の、一番左に置きます。
=B3&C3 と入力して、区分と商品を結合します。G2&G3 のように、結合して、キーの列で探します。「輸入」と「みかん」を結合した「輸入みかん」を、A列のキーから探して、4列目の価格を取り出します。結果は 60 です。列番号は、COLUMNS($A$3:$D$3) で、自動で数えることもできます。
キーの列を作らずに、複数条件で探す方法は、VLOOKUPで複数条件で検索する方法、INDEX+MATCHで複数条件を検索する方法で説明しています。
▶ この式(G6)を、上の練習ツールで試す / この式(G9)を、上の練習ツールで試す
別のシートから探す
探す範囲が、別のシートにあるときは、範囲の前に、「シート名!」を付けます。たとえば、Sheet2のC3:D8から探すなら、次のように書きます。
範囲は、別のシートを開いて、ドラッグで選ぶと、シート名が自動で入ります。シート名に、スペースがあるときは、'シート 名'!$C$3:$D$8 のように、「’」で囲みます。詳しくは、VLOOKUPで別シートからデータを検索する方法を参照してください。
VLOOKUPで一致しない・思った値が返らないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#N/A」になる | 探す値が、表にない | 表の値を、確認する。IFERROR関数で、置き換える。 |
| 見えているのに、「#N/A」になる | 全角と半角、前後のスペースが、違う | TRIM関数で、スペースを除く。表記をそろえる。 |
| 数字のコードで、「#N/A」になる | 片方が数値、片方が文字になっている | 数値か文字かを、そろえる。 |
| 違う行の値が、返ってくる | 4つ目の引数が、省略(TRUE)になっている | FALSE を指定する。 |
| 同じ名前の、最初の行しか返らない | VLOOKUPは、上から探して、最初の行を返す | キーの列を作って、複数条件で探す。 |
| 下へコピーすると、「#N/A」が増える | 探す範囲に、「$」を付けていない | 範囲を、$C$3:$D$8 のように固定する。 |
| 列番号を、間違える | 範囲の左端から、数えていない | 範囲の左端を1として、数え直す。 |
VLOOKUPのよくある質問
VLOOKUPで、複数の条件を指定するには?
2つの条件を結合した「キー」の列を、探す範囲の左端に作ります。探す値も、G2&G3 のように、結合します。
「#N/A」を、表示しないようにするには?
IFERROR関数で、VLOOKUPを囲みます。=IFERROR(VLOOKUP(…),"該当なし") のように、置き換えたい文字を指定します。
VLOOKUPで、左の列は、取り出せますか?
VLOOKUPは、探す列より、左の列は、取り出せません。左の列を取り出すときは、INDEX関数と MATCH関数、または XLOOKUP関数を使います。INDEXとMATCHの使い方を参照してください。
あわせて読みたい:VLOOKUPの関連記事
- VLOOKUP関数の使い方|商品番号から価格を検索する
- Excel VLOOKUP関数の使い方まとめ|基本から応用まで
- ExcelでIFERROR関数とVLOOKUP関数を使ってエラーを処理する方法
- VLOOKUPとHLOOKUPの違いと使い分け
- XLOOKUP関数の使い方|VLOOKUPとの違い・近似一致
練習用ファイル:練習用Excelファイル(.xlsx・無料)
式をコピーしたときに参照がずれるときは、絶対参照・相対参照の違いと$の付け方もあわせてご覧ください。
全角と半角の変換を、ショートカットや入力規則も含めて確認したいときは、エクセルで全角・半角を変換する方法もあわせてご覧ください。
