VLOOKUP関数で#N/Aになる原因|あるのになぜエラー?
ここでは、エクセルのVLOOKUP関数で#N/Aエラーになる4つの原因を解説します。
特に最後の原因は気付きにくいので、役に立つと思います。
【原因1】検索値が範囲内にない
VLOOKUP関数が#N/Aエラーになる一つ目の原因は、「検索値が範囲内にない」です。
では、例を確認し、その後対処法を見てみましょう。
1-1.例を確認
まずは例を確認します。
A列に番号、B列に都道府県名が入っています。
そして、検索値を「7」、範囲を「A1からB6」、列番号を「2」として、「番号が7の都道府県名」をVLOOKUP関数で抜き出そうとしましたが、#N/Aエラーになりました。
これは、「A列に『7』がないから」です。
このように、検索値として指定した値が範囲(の左端の列)にないと、VLOOKUP関数は#N/Aエラーになります。
1-2.対処方法
対処方法は、「検索値を変える」か「範囲を変える」です。
つまり、「検索値が範囲の左端の列にある状態」にします。
先ほどの例の場合には、次のように対処します。
- 検索値を1~6のどれかに変える
- 7の都道府県名を追加し、範囲を広げる
【検索値を変えた例】
【範囲を変えた例】
これで#N/Aエラーが解消されます。
【原因2】検索値が範囲の左端の列にない
VLOOKUP関数が#N/Aエラーになる二つ目の原因は、「検索値が範囲の左端の列にない」です。
では、例を確認し、その後対処法を見てみましょう。
2-1.例を確認
まずは、例の確認です。
先ほどの例と比べて、A列とB列が入れ替わっています。
この状態で検索値を「3」、範囲を「A1からB6」、列番号を「2」として、「番号が3の都道府県名」をVLOOKUP関数で抜き出そうとしましたが、#N/Aエラーになりました。
これは、「指定した範囲の『最も左端の列』に検索値が見つからない」からです。
例では、A列に都道府県名が入っており「3」がありません。
このように、「範囲の最も左端の列を検索する」というVLOOKUP関数のルールが守られていないので、#N/Aエラーになっているのです。
2-2.対処方法
対処法は、「左端に検索値があるよう元の表を作り直す」、または「範囲を変える」です。
つまり、「左端が検索列になるような表や範囲にする」のです。
先ほどの例の場合には、「A列とB列を入れ替える」ことをします。
【A列とB列入れ替え後の例】
これで#N/Aエラーが解消されます。
【原因3】検索列が範囲に含まれていない
VLOOKUP関数が#N/Aエラーになる三つ目の原因は、「検索したい列が範囲に含まれてない」です。
では、例を確認し、その後対処法を見てみましょう。
3-1.例を確認
まずは、例の確認です。
A列に番号、B列に都道府県名が入っています。
そして、検索値を「3」、範囲を「B1からB6」、列番号を「2」として、「番号が3の都道府県名」をVLOOKUP関数で抜き出そうとしましたが、#N/Aエラーになりました。
これは、「検索したい列が範囲に含まれていない」からです。
例ではA列を範囲に入れていません。
このように、範囲の指定ミスなどでも#N/Aエラーになります。
3-2.対処方法
対処方法は、「範囲を直す」です。
やはり、「左端が検索列になるような範囲にする」のです。
先ほどの例の場合には、「範囲にA列を含める」ことをします。
【範囲を直した例】
これで#N/Aエラーが解消されます。
【原因4】半角の「~」を使っている
VLOOKUP関数が#N/Aエラーになる原因の四つ目は、「半角の『~』を使っている」です。
では、例を確認し、その後対処法を見てみましょう。
4-1.例を確認
まずは、例の確認です。
A列に「~」を使って時間帯を、B列に時間数を入れています。
そして、検索値を「D2(1:00~3:00)」、範囲を「A2からB6」、列番号を「2」として、「1:00~3:00の時間数」をVLOOKUP関数で抜き出そうとしましたが、#N/Aエラーになりました。
これは、「検索値や検索される値に半角の『~』を使っている」からです。
なぜ「~」を使うとダメなのかは不明ですが、VLOOKUP関数は特定の記号を使うと#N/Aエラーになります。
4-2.対処方法
対処法は、「半角の『~』を全角の『~』にする」です。
【「~」から「~」に変えた例】
ちなみに「~」を「~」にまとめて置き換える場合には、置換機能ではなくSUBSTITUTE関数を使って行いましょう。
なぜなら、置換機能を使うと下のようにエラーになるからです。
手順はまず作業列を準備し、そこでSUBSTITUTE関数を使って「~」を「~」に置き換えた値に変換します。その後、その値をコピーして置き換えたいセルに「値の貼り付け」を行えばOKです。
なお、SUBSTITUTE関数の使い方を知りたい場合には、次のページを参照してください。
4-3.検索値があるのにエラー?なぜ??の一因に
このように、「~」で#N/Aエラーになるのは原因に気付きにくく、「検索値があるのに#N/Aエラーになる」、「なぜ?」となりがちです。
VLOOKUP関数に限らずエクセルでは、様々な場面で「特定の記号を使うとうまくいかない」ケースがあるので、覚えておきましょう。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
VLOOKUP関数のその他の記事はこちらです。
- VLOOKUP関数その他の記事はこちら
- ◎基本的な使い方
- ◎「以上/未満」の条件指定の仕方
- ◎〇番台の条件にする方法
- ◎部分一致の条件指定の仕方
- ◎別シートから値を抜き出す方法
- ◎別ブックから値を抜き出す方法
- ◎数式コピーで横方向の値を簡単に取得する方法
- ◎2番目、3番目以降の値を抽出する方法
- ◎#N/Aエラーになる3つの原因と対処方法
- ◎#REF!エラーになる原因と対処方法
- ◎#VALUE!エラーになる原因と対処方法
- ◎空白を0ではなく空白で表示する2つの方法
- ◎「IF(ISERROR(VLOOKUP」の意味と使い方
- ◎IFERROR関数とVLOOKUPの組み合わせ方
- ◎空白でもエラーでも空白で表示する方法
- ◎複数条件にする方法
- ◎セルや範囲を固定しコピーのズレを防ぐ方法
- ◎文字列を条件にする方法
- ◎列番号の意味と指定の仕方