VLOOKUP関数で#REF!エラーはなぜ起こる?その原因・理由
ここでは、エクセルのVLOOKUP関数で#REF!エラーがなぜ起こるか、その原因・理由と対処法を解説します。
数式を落ち着いて見返すと、なるほどと思う理由になっています。
また、合わせてVLOOKUP関数でエラーを表示しない方法も説明します。
1.列番号がセル範囲を超えて無効になっている
VLOOKUP関数が#REF!エラーになる原因は「列番号がセル範囲を超えて無効になっている」ことです。
では、例を確認し、その後対処法を見てみましょう。
1-1.列番号がセル範囲を超えて無効になっている
まずは、例の確認です。
上の表では、A列に№、B列に都道府県が入っています。
そして、セルD1にVLOOKUP関数を使って「№が3の都道府県名」を抽出しようとしましたが、#N/Aエラーになりました。なぜでしょうか?
ここで原因を知る前に、まずはVLOOKUP関数の基本的な動きを確認しておきましょう。
【VLOOKUP関数の基本的な動き】
VLOOKUP関数は「範囲の左端から検索値と一致するものがないかを検索(①)」し、「範囲内における列番号で指定した列の値を返す(②)」関数です。
特にここでのポイントは「範囲と列番号の関係」です。
例えば、範囲を「A1:B7」、列番号を「2」とした場合にはAから2つ目がBなので「B列の値」を、範囲を「D1:F7」、列番号を「3」とした場合にはDから3つ目がFなので「F列の値」を返します。
このことを踏まえて例の数式を見てみると、範囲が「A1:B7」にもかかわらず列番号は「3」となっています。
つまり「列番号が範囲を超えている」のです。
範囲を超えた列番号を指定しているので、「範囲を超えていますよ」と#REF!エラーを出しているのです。
1-2.列番号がセル範囲を超えて無効になっていることへの対処方法
このケースへの対処法は「範囲を広げる」か「列番号を減らす」です。
つまり、「指定した範囲内で列番号を指定する」ようにしましょう。
例でいうと、列番号を「2」にすることでエラーを回避することができます。
これが「列番号が範囲を超えている」ことの原因と対処法です。
また、もう一つの対処法として、「範囲を広げる」という方法もあります。これは元になっている表の範囲がもともと広いときに使えます。
2.VLOOKUP関数でエラーを表示しない方法
VLOOKUP関数で#REF!を含め、エラーを表示しないようにするには、IFERROR関数と組み合わせます。
数式の形は次の通りです。
IFERROR関数は、「エラーの時に返す値を指定できる関数」です。そして、上の数式では「""(空白)」を指定しているので、エラー時には「何も表示しない」状態となります。
これも合わせて覚えておくと、とても便利ですよ。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
VLOOKUP関数のその他の記事はこちらです。
- VLOOKUP関数その他の記事はこちら
- ◎基本的な使い方
- ◎「以上/未満」の条件指定の仕方
- ◎〇番台の条件にする方法
- ◎部分一致の条件指定の仕方
- ◎別シートから値を抜き出す方法
- ◎別ブックから値を抜き出す方法
- ◎数式コピーで横方向の値を簡単に取得する方法
- ◎2番目、3番目以降の値を抽出する方法
- ◎#N/Aエラーになる3つの原因と対処方法
- ◎#REF!エラーになる原因と対処方法
- ◎#VALUE!エラーになる原因と対処方法
- ◎空白を0ではなく空白で表示する2つの方法
- ◎「IF(ISERROR(VLOOKUP」の意味と使い方
- ◎IFERROR関数とVLOOKUPの組み合わせ方
- ◎空白でもエラーでも空白で表示する方法
- ◎複数条件にする方法
- ◎セルや範囲を固定しコピーのズレを防ぐ方法
- ◎文字列を条件にする方法
- ◎列番号の意味と指定の仕方