【Excel】VLOOKUP関数のエラーをIFERROR関数で回避・非表示にする方法

この記事は約5分で読めます。

今回は、ExcelのVLOOKUP関数を使う際によく遭遇するエラー表示を、IFERROR関数を組み合わせて回避する方法について紹介します。

Excelで商品マスターや顧客リストなどの別表から特定のデータを検索して自動入力させたいとき、VLOOKUP関数は頻繁に利用されます。しかし、検索したい値が元の表に存在しなかったり、入力欄がまだ空欄だったりすると、セルに「#N/A」という見慣れないエラーの文字が表示されてしまいます。このエラー表示が表の中にいくつもあると、見た目が煩雑になるだけでなく、その後の計算(合計を出すなど)にも支障をきたすことがあります。そこで役立つのが、IFERROR(イフエラー)関数という別の関数を組み合わせるテクニックです。

VLOOKUP関数とエラーの仕組み

IFERROR関数の使い方を理解する前に、なぜVLOOKUP関数でエラーが起きてしまうのか、その仕組みを簡単に整理しておきます。

「#N/A」エラーが意味するもの

VLOOKUP関数を入力したセルに「#N/A(ノー・アサイン)」と表示される場合、Excelは「探しているデータが見つかりません」というメッセージを出しています。これは関数自体の書き方が間違っているわけではなく、以下のいずれかの状況が発生していると考えられます。

  • 検索値として指定したセルが空白(何も入力されていない)状態である
  • 検索値に入力した文字や数字が、参照先の表の中に存在しない
  • 検索値に入力した文字の前後に、目に見えない不要なスペースが混ざっている

特に、テンプレートとしてあらかじめVLOOKUP関数を入力しておく場合、検索値を入力する前は必ず空白になるため、初期状態で「#N/A」が並んでしまうという現象が起こります。

エラーをそのままにするデメリット

「後でデータを入力すればエラーは消えるから」と、そのままにしておく考え方もありますが、表の見た目が美しくないという点以外にも問題があります。例えば、VLOOKUP関数で抽出した単価や数量を使って、別のセルで「合計金額」を計算(掛け算など)している場合、計算元のセルの一つでも「#N/A」になっていると、合計金額のセルまでエラーになってしまい、正しい計算結果が得られなくなります。

IFERROR関数でエラーを隠す方法

この問題を解決するために、IFERROR関数を使用します。IFERROR関数は、「もし計算結果がエラーになったら、代わりに指定した文字を表示する」という働きを持っています。

基本的な考え方

IFERROR関数の基本的な形は以下のようになっています。

=IFERROR(通常行う計算や関数, エラーの場合に表示させる値)

これをVLOOKUP関数に当てはめると、次のような構成になります。

=IFERROR(VLOOKUP関数の数式, “エラーの代わりに表示したい文字”)

「VLOOKUP関数を実行してみて、もしエラーになったら(探している値がなかったら)、代わりにこの文字を表示してね」という指示をExcelに出すことになります。

具体的な入力手順

エラーになった場合にセルを「空欄」にしてスッキリ見せたい場合の具体的な入力例を見ていきます。

  1. VLOOKUP関数を入力したいセルを選択します。
  2. 数式バーに、以下のように入力します。
  3. =IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), "")

ここでポイントになるのが、最後にある “”(ダブルクォーテーション2つ)
です。これはExcelの関数において「空白の文字列(何も表示しない)」を意味します。これにより、データが見つからないときは「#N/A」ではなく、ただの空欄として表示されるようになります。

エラー時に特定のメッセージを表示させる

空白にするだけでなく、エラーが起きた原因が分かりやすいように特定のメッセージを表示させることも可能です。

例えば、該当する商品が見つからなかったときに「該当なし」と表示させたい場合は、ダブルクォーテーションの間にその文字を入れます。

=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), "該当なし")

また、未入力であることを知らせるために「未入力です」と表示させるなど、用途に合わせて柔軟に変更することができます。

IFERROR関数を使う際の注意点とTips

IFERROR関数は便利ですが、使う場面によっては少し注意が必要です。

本当の入力ミスを見逃すリスク

IFERROR関数は、「#N/A」だけでなく、「#VALUE!」や「#REF!」など、すべての種類のエラーを一律で隠して(または別の文字に置き換えて)しまいます。そのため、VLOOKUP関数の参照範囲の設定を間違えていたり、列番号の指定が間違っていたりする「本当の入力ミス」によるエラーも隠れてしまい、間違いに気づきにくくなる可能性があります。

このリスクを減らすためには、まずはIFERROR関数を使わずに通常のVLOOKUP関数だけで式を作成し、正しくデータが抽出されるか(意図通りのエラーが出るか)を確認します。正常に動くことが確認できてから、最後にIFERROR関数で全体を囲むように修正を加えるという手順を踏むと、ミスの発見がしやすくなります。

VLOOKUP関数以外の活用

今回はVLOOKUP関数との組み合わせを紹介しましたが、IFERROR関数は他の計算でも同様に使えます。例えば、割り算を行う際、分母のセルが「0」や空欄になっていると「#DIV/0!」というエラーが出ますが、これもIFERROR関数で囲むことで回避できます。

=IFERROR(売上/客数, 0)

このように設定すれば、客数が0でエラーになる場合でも、結果を「0」として表示させることができ、後続の計算に影響を与えずに済みます。

まとめ

VLOOKUP関数で生じる「#N/A」エラーは、IFERROR関数を組み合わせることで、指定した文字や空欄に置き換えることができます。この一手間を加えるだけで、表全体の見た目が整理され、他のセルでの計算エラーを防ぐことにも繋がります。関数の構造を入れ子にする(ネストする)ため最初は少し複雑に見えるかもしれませんが、定型業務のテンプレートを作成する際などには重宝する手法ですので、少しずつ慣れていくことをお勧めします。