VLOOKUP関数がVALUEエラーになる原因と表示しない方法

ここでは、エクセルの「VLOOKUP関数で#VALUE!エラーになる原因とエラーを表示しない方法」を解説します。

 

VLOOKUP関数でなぜ#VALUE!エラーになるのか、エラーを表示させないためにはどうすればいいのかの説明です。

【原因1】「列番号の指定」がない

VLOOKUP関数の数式に「列番号の指定がない」と、#VALUE!エラーになります。

 

1.例を確認

上の例は、左側の表から「№2の都道府県名」を抽出したものです。

 

セルF2の数式は、次の通りです。

=VLOOKUP(E2,A2:C7,E2,FALSE)

対して上の例の数式は、一見同じようですが「列番号の指定」がありません。

 

セルF2の数式は、次の通りです。

=VLOOKUP(E2,A2:C7,FALSE)

このように、VLOOKUP関数は「列番号の指定がない」と#VALUE!エラーになるのです。

 

2.対処方法

原因が分かると対処法も分かりやすいです。対処法は、「列番号を指定する」です。

=VLOOKUP(E2,A2:C7,FALSE)

  

=VLOOKUP(E2,A2:C7,E2,FALSE)

言い方を変えると、VLOOKUP関数の数式には「,」が3つ必要ということです。

【原因2】列番号に「マイナス」が付いている

VLOOKUP関数の列番号が「マイナス」だと、#VALUE!エラーになります。

 

1.例を確認

上の例の数式は、一見良さそうですが列番号がマイナスに」なっています。

 

セルF2の数式は、次の通りです。

=VLOOKUP(E2,A2:C7,-2,FALSE)

このように、VLOOKUP関数は「列番号がマイナス」だと#VALUE!エラーになるのです。

 

2.対処方法

対処法は、「列番号をプラスの値にする」です。

=VLOOKUP(E2,A2:C7,-2,FALSE)

  

=VLOOKUP(E2,A2:C7,2,FALSE)

ちなみに、列番号にセル番号を入れ、そのセルの値がマイナスの場合は「#N/Aエラー」になります。

【原因3】検索値が255字より長い

VLOOKUP関数の検索値が「255字より長い」だと、#VALUE!エラーになります。

 

1.例を確認

上の例の数式は検索値にセルE2を参照しており、隠れていますがセルE2には255字以上の長い文字列が入っています。

 

このように、検索値がとても長いとVLOOKUP関数は#VALUE!エラーになってしまうのです。

 

2.対処方法

対処法は2つあり、「検索値を短くする」か「INDEX+MATCH関数を使う」かです。

 

検索値を短くするのは簡単なので、ここではINDEX+MATCH関数の使い方を確認します。

 

数式の形は、次の通りです。

{=INDEX(範囲,MATCH(TRUE,検索範囲=検索値,0),列番号)}

引数は「範囲」、「検索範囲」、「検索値」、「列番号」の4つです。

 

指定の仕方は、次の通りです。

  • 範囲:元データの範囲
  • 検索範囲:検索値を検索する範囲(1列)
  • 検索値:検索する値(セル番号)
  • 列番号:抽出する列の番目

そして大事なのは、最後に「配列数式にする」ことです。

 

引数をすべて入れたら「Ctrlキー」と「Shiftキー」を押しながら「Enterキー」を押すことで数式に「{ }」が付き、配列数式になります。

例の場合、セルF2に入れた数式は次の通りです。

{=INDEX(A2:C7,MATCH(TRUE,A2:A7=E2,0),2)}

#VALUE!エラーを表示しない方法

最後に、#VALUE!エラーを表示しない方法です。

 

1.数式の形

#VALUE!エラーを表示しない数式は、次の通りです。

=IFERROR(VLOOKUP(検索値,範囲,列番号,検索方法),"")

IFERROR関数で「エラーの場合は空白にする」とすることで、#VALUE!エラーを表示しなくなります。

 

2.例を確認

上の例のセルF2は「列番号がマイナスになっている数式」ですが、IFERROR関数で空白になっています。

 

数式は、次の通りです。

=IFERROR(VLOOKUP(E2,A2:C7,-2,FALSE),"")

これで、#VALUE!エラーを表示しなくなります。

 

以上、参考になれば幸いです。

 


口コミ・評判のいいExcel本の紹介】


Top