VLOOKUPで単価や名称を転記していると、マスタに無いコードの行に #N/A というエラーがずらりと並ぶことがあります。新商品のコードがまだマスタに登録されていない、入力した型番が1文字違う——よくある場面です。
このエラー表示は、IFERROR 関数でVLOOKUPを包むだけで「未登録」や空白などのわかりやすい表示に変えられます。一覧の印刷や、その先の集計(SUMなど)も崩れません。実際の画面で見ていきましょう。
完成イメージ
検索コードから商品名・単価を転記する一覧です。マスタに無い Z-999 の行だけ、#N/A の代わりに「未登録」と表示されています。
数式の意味
単価のセルに入れているのは、次の数式です。
=IFERROR(VLOOKUP(A2, マスタ!$A:$C, 3, FALSE), "未登録")
IFERROR は「中の数式がエラーになったら、別の値を代わりに返す」関数です。引数は2つだけです。
- 第1引数(VLOOKUP(...))… 普段どおりのVLOOKUP。VLOOKUP全体をそのまま入れます
- 第2引数("未登録")… 第1引数がエラーになったときに表示する値。空白にしたいなら
""
つまり「VLOOKUPで引けたらその値を、引けずにエラーになったら『未登録』を表示する」という指示です。商品名の列も同じく =IFERROR(VLOOKUP(A2, マスタ!$A:$C, 2, FALSE), "未登録") のように包みます。
つまずきやすいポイント①:IFERROR と IFNA の使い分け
よく似た関数に IFNA があります。違いは「どのエラーを消すか」です。
- IFERROR … #N/A だけでなく、#VALUE! や #REF! などすべてのエラーを置き換える
- IFNA … #N/A だけを置き換える。数式の組み間違い(#VALUE! など)はそのまま表示される
「該当なし」だけをきれいにしたいのに、数式のミスまで隠れてしまうと原因に気づけません。原因を見落としたくないなら IFNA、型違いや空白由来のエラーもまとめて消したいなら IFERROR、と覚えておくと安全です。
つまずきやすいポイント②:先にVLOOKUP単体で動かす
いきなりIFERRORで包むと、本当はマスタにあるのに引けていないケースまで「未登録」で隠れてしまいます。まずはVLOOKUP単体で表示し、正しく引けることを確認してからIFERRORで包むのがおすすめです。表記ゆれ(全角半角・前後の空白)が原因のことも多いので、検索値とマスタの値が完全一致しているかを先に確認します。
よくあるエラーと対処
- 全部が「未登録」になる … VLOOKUPの参照範囲がずれている可能性があります。マスタの範囲を
$で固定し、検索値の列が範囲の左端にあるか確認します。 - 「未登録」にしたいのに 0 が出る … 第2引数を空文字にすると、その先の集計で0として扱われる場合があります。文字の「未登録」にするか、用途に応じて使い分けます。
- 数式が長くて読みにくい … VLOOKUPの代わりに XLOOKUP を使うと、第4引数で「見つからないときの値」を直接指定でき、IFERRORで包まずに済みます。
まとめ
IFERROR でVLOOKUPを包めば、マスタにないコードだけを「未登録」や空白にでき、一覧も集計もきれいに保てます。ただしすべてのエラーを隠してしまう性質があるので、まずは単体で動かしてから包む、または #N/A だけ消す IFNA を選ぶ、という一手間が安全です。
「マスタの整備から転記・集計までまとめて自動化したい」「関数では追いつかないのでマクロにしたい」という場合は、ExcelMate のチャット相談でそのままご相談いただけます。

