VLOOKUPのエラー表示をなくして、もっとスマートに効率アップ!中堅社員のためのExcel時短術

VLOOKUPのエラー表示をなくして、もっとスマートに効率アップ!中堅社員のためのExcel時短術

ExcelのVLOOKUP関数は、大量のデータから必要な情報を引き出す際に非常に便利な機能です。しかし、検索値が見つからない場合に表示される「#N/A」エラーが、集計表の見た目を悪くしたり、その後の処理を妨げたりすることはありませんか? この記事を読めば、そのエラー表示を非表示にし、見やすくスマートな業務資料を作成できるようになります。煩雑なエラー処理から解放され、作業時間を大幅に短縮できるでしょう。

なぜVLOOKUPのエラー表示を消す必要があるのか?

VLOOKUP関数は、指定した検索値が検索範囲に見つからない場合、結果として「#N/A」というエラー値を返します。このエラーは、次のような問題を引き起こすことがあります。

  • 見た目の悪化: 表全体に「#N/A」が散らばると、専門的な知識がない人にとっては見づらく、情報が伝わりにくくなります。
  • 二次加工の妨げ: SUM関数などで合計を計算しようとした際に、エラー値が含まれていると計算ができず、やはり「#N/A」エラーが表示されてしまいます。これは集計作業を大きく妨げます。
  • 業務効率の低下: エラーが表示されるたびに手作業で修正したり、別の関数で処理したりといった手間が発生し、作業時間が無駄になります。

これらの問題を解決し、よりスムーズで効率的な業務フローを構築するために、VLOOKUPのエラー表示を意図的に非表示にするテクニックが非常に役立ちます。

ISNA関数を使ったエラー非表示の方法

ISNA関数とは?

ISNA関数は、「Is Not Available」(利用可能ではない)の略で、セルに「#N/A」エラー値があるかどうかを判定する関数です。もしセルが「#N/A」エラーであれば「TRUE」を、そうでなければ「FALSE」を返します。

VLOOKUPとISNAを組み合わせる手順

ISNA関数とIF関数を組み合わせることで、「#N/A」エラーの場合に代替の値を表示させることができます。ここでは「商品マスター」と「売上データ」を使った具体例で解説します。

  1. 状況設定:

    • 「商品マスター」シートに商品コードと商品名が記載されています。
    • 「売上データ」シートには、商品コードと売上数量がありますが、商品名がありません。VLOOKUPで商品マスターから商品名を取得したい状況です。
    • しかし、売上データの中には、まだ商品マスターに登録されていない商品コードや、誤入力された商品コードが含まれている可能性があります。
  2. 基本的なVLOOKUP関数を作成:

    まず、エラー表示を気にせず、VLOOKUP関数を通常通り作成します。例えば、A列に商品コード、B列に商品名を取得したい場合、B2セルに以下の数式を入力します。

    =VLOOKUP(A2,商品マスター!$A:$B,2,FALSE)

    この段階で、商品コードが見つからないセルには「#N/A」が表示されます。

  3. ISNA関数でエラー判定:

    次に、VLOOKUP関数全体をISNA関数で囲みます。これにより、VLOOKUPの結果が「#N/A」であればTRUE、そうでなければFALSEが返されます。

    =ISNA(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE))

  4. IF関数で条件分岐:

    最後に、ISNA関数の結果を利用して、IF関数で条件分岐させます。ISNAの結果がTRUE(つまり「#N/A」エラー)であれば、空欄("")や「該当なし」などのメッセージを表示し、FALSE(正常な値)であれば、元のVLOOKUP関数の結果を表示させます。

    =IF(ISNA(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE)),"",VLOOKUP(A2,商品マスター!$A:$B,2,FALSE))

    これで、エラーが表示される箇所が指定した空白やメッセージに置き換わります。

IFERROR関数を使ったエラー非表示の方法

IFERROR関数とは?

IFERROR関数は、Excel 2007で導入された関数で、指定した計算式がエラーになる場合に、別の値を返すように設定できます。ISNA関数よりも簡潔に記述できるのが特徴です。

VLOOKUPとIFERRORを組み合わせる手順

同じく「商品マスター」と「売上データ」の具体例で解説します。

  1. 状況設定:

    ISNA関数の例と同じく、VLOOKUPで商品マスターから商品名を取得したいが、エラー表示を避けたい状況です。

  2. 基本的なVLOOKUP関数を作成:

    まず、エラー表示を気にせず、VLOOKUP関数を通常通り作成します。B2セルに以下の数式を入力します。

    =VLOOKUP(A2,商品マスター!$A:$B,2,FALSE)

    この段階で、商品コードが見つからないセルには「#N/A」が表示されます。

  3. IFERROR関数でエラー処理:

    IFERROR関数は非常にシンプルです。第一引数に「エラーになる可能性がある数式(今回の場合はVLOOKUP)」、第二引数に「エラーになった場合に表示したい値」を指定するだけです。

    =IFERROR(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE),"")

    これで、VLOOKUPの結果がエラーであれば空欄("")が表示され、そうでなければVLOOKUPの正常な結果が表示されます。

見ての通り、IFERROR関数を使うと、ISNA関数とIF関数を組み合わせるよりも数式が短く、理解しやすくなります。

実務で使えるVLOOKUP+エラー処理の数式例

ここでは、具体的な業務シーンを想定した数式例をご紹介します。

例1:売上データに商品名を追加し、エラー時は空欄にする

「売上データ」シートのA列に商品コード、B列に商品名を表示したい場合。

=IFERROR(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE),"")

解説: IFERROR関数を使用することで、VLOOKUPの結果が「#N/A」などのエラーの場合に、セルを空欄にします。これにより、すっきりとした売上データが作成でき、その後の集計処理もスムーズに行えます。

例2:社員名簿に部署名を追加し、エラー時は「所属なし」と表示する

「社員名簿」シートのA列に社員番号、B列に部署名を表示したい場合。

=IFERROR(VLOOKUP(A2,部署リスト!$A:$B,2,FALSE),"所属なし")

解説: エラー時に具体的なメッセージ「所属なし」を表示させることで、データが見つからなかった理由を明確に伝えられます。これは新入社員や異動などで部署データがまだ反映されていない場合などに有効です。

例3:古いExcelバージョン(Excel 2003など)でもエラーを空欄にする

IFERROR関数が使えない環境の場合。

=IF(ISNA(VLOOKUP(A2,データ!$A:$B,2,FALSE)),"",VLOOKUP(A2,データ!$A:$B,2,FALSE))

解説: Excel 2007より前のバージョンではIFERROR関数が利用できません。その場合は、ISNA関数とIF関数を組み合わせることで、同様にエラーを空欄にすることができます。この数式は、どのExcelバージョンでも互換性があります。

VLOOKUPのエラー処理に関する注意点・補足

  • IFERROR関数とISNA関数の使い分け:

    原則として、Excel 2007以降をお使いであればIFERROR関数を使用することをおすすめします。数式が短く、可読性が高いためです。ISNA関数はExcelの全バージョンで利用できますが、数式が長くなりがちです。ただし、VLOOKUP以外のエラー(#DIV/0!、#VALUE!など)も全て拾って代替値を表示したい場合はIFERRORが便利ですが、「#N/A」のみを拾いたい場合はISNAの方が意図を明確にできます。

  • VLOOKUP関数自体の正確性:

    エラー処理はあくまで「エラー表示をなくす」ためのものであり、VLOOKUP関数自体の検索が正しく行われているかは別途確認が必要です。例えば、検索範囲が固定されていない($マークでの絶対参照を忘れている)ために、数式をコピーした際に参照先がずれてしまい、本来見つかるはずのデータが見つからなくなるケースなどがあります。エラーが表示されなくなったことで、かえって間違いに気づきにくくなることもあるため、数式の作成時には注意しましょう。

よくある質問(FAQ)

Q1: IFERROR関数とISNA関数、どちらを使えばいいですか?
A1: Excel 2007以降のバージョンを使用している場合は、数式が簡潔で分かりやすいIFERROR関数をおすすめします。ほとんどの場合、これで十分です。もし、古いExcelバージョンとの互換性を強く求める場合や、「#N/A」エラーだけを特別に処理したい(他のエラーはそのまま表示したい)といった明確な意図がある場合にのみ、ISNA関数とIF関数の組み合わせを検討してください。
Q2: エラー時に空白ではなく、「該当データなし」のような特定のメッセージを表示したい場合はどうすればいいですか?
A2: 数式の第二引数(エラーの場合に表示する値)を変更するだけで可能です。

  • IFERROR関数を使う場合: =IFERROR(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE),"該当データなし")
  • ISNA関数を使う場合: =IF(ISNA(VLOOKUP(A2,商品マスター!$A:$B,2,FALSE)),"該当データなし",VLOOKUP(A2,商品マスター!$A:$B,2,FALSE))

のように、「””」の代わりに表示したいメッセージを二重引用符(”)で囲んで記述してください。

まとめ

  • VLOOKUPのエラー表示を消すことで、表の見やすさ二次加工のしやすさが格段に向上します。
  • IFERROR関数(Excel 2007以降)を使えば、簡潔な数式でエラーを非表示にできます。
  • 古いバージョンや特定の条件で「#N/A」のみを処理したい場合は、ISNA関数とIF関数の組み合わせが有効です。

これらのテクニックを活用して、日々の業務で作成するExcelシートをよりスマートにし、あなたの業務効率をさらに向上させてください。


コメント

タイトルとURLをコピーしました