Excelを使ってデータ管理や帳票作成を行う業務では、「"VLOOKUP"関数」を使った検索処理が頻繁に登場します。しかし、指定した値が見つからない場合に「#N/A」エラーが表示されてしまい、表が見づらくなったり、集計処理が途中で止まってしまったりすることがあります。そこで役立つのが、「"IFERROR"関数」との組み合わせです。
この記事では、"IFERROR(VLOOKUP())"の基本から、実務に役立つ応用テクニックまでを網羅し、エラー処理をスマートに行う方法をご紹介します。特に「複数パターンでの検索」「代替候補の表示」「空白セルとの組み合わせ」など、実務に即したケーススタディを通して、より高度な使いこなし方を解説していきます。
目次
✅ IFERRORとVLOOKUPの基本的な使い方
まずは基本形から確認しておきましょう。
例えば、"B2"セルに入力された商品コードに基づいて、"商品一覧"の表から商品名を検索する場合、通常のVLOOKUP関数は以下のようになります。
=VLOOKUP(B2, 商品一覧!A:B, 2, FALSE)
しかし、B2に存在しない商品コードを入力した場合、「#N/A」というエラーが出力されてしまいます。このようなとき、IFERROR関数でエラー時の代替出力を設定すると、より親切で実務向きの表になります。【Excel】【初心者向け】VLOOKUP関数の使い方をやさしく解説|Excelの検索・参照を自動化しよう!
=IFERROR(VLOOKUP(B2, 商品一覧!A:B, 2, FALSE), "未登録")
このように、エラー時に「未登録」と表示されるようになり、業務上の混乱を防げます。
✅ 代替候補の検索を試す
1つの表に存在しない場合でも、別の表に同じ情報があることがあります。たとえば、現在の取引先リストに見つからない場合は、過去の取引先リストを検索するようにしたい、という場面です。
このようなケースでは、"IFERROR"関数をネストして、複数のVLOOKUPを順番に実行する構造が役立ちます。
=IFERROR(
VLOOKUP(A2, 現在取引先!A:B, 2, FALSE),
IFERROR(
VLOOKUP(A2, 過去取引先!A:B, 2, FALSE),
"未登録"
)
)
このようにすることで、「現在 → 過去 → 未登録」と段階的に情報を探す検索フローが実現できます。【Excel】【初心者でも簡単】IFERROR関数の使い方を徹底解説!Excelのエラーを見やすく整える実務テクニック
✅ 空白セルや未入力セルへの対処
VLOOKUPの対象セルが空白のままの場合、#N/Aを返すだけでなく、無駄な計算リソースを消費する原因にもなります。そこで、まず対象セルが空でないかどうかをチェックしてから検索を実行する方法が効果的です。
=IF(B2="", "", IFERROR(VLOOKUP(B2, 商品一覧!A:B, 2, FALSE), "未登録"))
この式では、まずB2セルが空であれば空文字列を返し、それ以外であればVLOOKUPを試行し、エラー時には「未登録」と表示されます。業務でよくある「未入力行も大量に存在する表」で活躍する構文です。【Excel】【保存版】IFERROR関数で空白を返す方法|Excelでエラー時にすっきり見せる実務テクニック
✅ 列番号を動的に指定する工夫
VLOOKUPでは、第3引数で返す列番号を固定で指定する必要がありますが、列構成が頻繁に変わるデータに対しては管理が煩雑になります。そんなときはMATCH関数と併用し、列番号を自動的に特定する方法が便利です。
=IFERROR(
VLOOKUP(B2, 商品一覧!A:D, MATCH("商品名", 商品一覧!A1:D1, 0), FALSE),
"未登録"
)
このようにすれば、「商品名」という列がどこに移動しても、式の修正なしで動作します。
■ 部分一致で検索したいときの注意点
VLOOKUPは完全一致か近似一致しか選べませんが、「部分一致で検索したい」という要望も多くあります。この場合、VLOOKUPではなく"INDEX"と"MATCH"、または"FILTER"関数の利用を検討するのが一般的です。しかし、どうしてもVLOOKUPとIFERRORで対応したい場合は、補助列を用意する方法があります。
例:商品コードの前方一致で補助列を作成
A列に商品コード、B列に商品名がある場合、別列で「検索キーワードが含まれるか」を判定した列を作り、該当する最初の行だけを返す構成にすることで、実質的に部分一致が可能になります。
ただし、ここでは"VLOOKUP"より"FILTER"関数を推奨します。Office 365やExcel 2021以降なら次のように書けます:
=IFERROR(
FILTER(商品一覧!B2:B100, ISNUMBER(SEARCH(B2, 商品一覧!A2:A100))),
"該当なし"
)
このように、IFERRORは"FILTER"関数との組み合わせでも活躍します。
■ 条件によって検索先を切り替える
「商品分類によって参照先を変えたい」といったシナリオでは、IF関数を併用して検索対象の範囲を条件分岐させると柔軟な処理が可能になります。
=IF(
C2="電子部品",
IFERROR(VLOOKUP(B2, 電子部品一覧!A:B, 2, FALSE), "未登録"),
IFERROR(VLOOKUP(B2, その他商品一覧!A:B, 2, FALSE), "未登録")
)
このように、商品カテゴリに応じて検索先を動的に変更することで、より柔軟な検索処理が可能となります。
■まとめ:IFERROR+VLOOKUPの活用でエラー処理も業務効率化も一気に実現!
"IFERROR"と"VLOOKUP"の組み合わせは、単なるエラー回避だけではなく、「検索フローの最適化」「動的な条件分岐」「ユーザーへの丁寧な情報提示」など、幅広い用途で活躍します。
特に実務においては、「#N/A」や「#VALUE!」などのエラーが出たままになっていると、他の関数の計算を妨げるだけでなく、見栄えや信頼性にも影響を与えかねません。"IFERROR"を上手に活用することで、より堅牢で視認性の高いExcelシートが作成できるようになります。
今後のExcel作業では、単に値を検索するだけでなく、「見つからなかったときにどうするか」という視点も意識して、"IFERROR"と"VLOOKUP"のコンビネーションを積極的に活用してみてください。