VLOOKUPやXLOOKUPを使っていると、検索した値が表に存在しないときに「#N/A」というエラーが表示されることがあります。テストや提出物でこのエラーがそのまま残っていると、「数式が壊れている」と誤解されてしまうこともあります。
このエラーをきれいに処理してくれるのがIFERROR関数です。この記事では、IFERROR関数の書き方と、VLOOKUP・XLOOKUPと組み合わせる方法をわかりやすく解説します。
そもそもなぜエラーが出るのか
VLOOKUP関数は、検索方法にFALSE(完全一致)を指定しているとき、検索値が表の中に見つからないと#N/Aというエラーを返します。たとえば、区分一覧表に載っていない区分のデータが1件だけ紛れ込んでいた場合などに発生します。
これは数式自体が間違っているわけではなく、「該当するデータが表の中にない」ということを正しく伝えているエラーです。とはいえ、エラーがそのまま表示されていると見た目が良くありませんし、この後ろに別の集計(合計や平均など)を続けている場合、そちらの計算までエラーになってしまうことがあります。
IFERROR関数とは
IFERROR関数は、ある数式の結果がエラーだった場合に、代わりに表示する値を指定できる関数です。書き方は次の通りです。
=IFERROR(数式, エラーの場合に表示する値)
| 引数 | 意味 |
|---|---|
| 数式 | 本来実行したい数式(VLOOKUPやXLOOKUPなど) |
| エラーの場合に表示する値 | 1番目の数式がエラーになったときに、代わりに表示したい値や文字列 |
1番目に本来の数式、2番目にエラー時の表示内容という順番を覚えておきましょう。ここが逆になっていると正しく動きません。
VLOOKUPと組み合わせる例
区分一覧に載っていない区分のデータが含まれていた場合に、エラーの代わりに「未分類」と表示させたいとします。
=IFERROR(VLOOKUP(G2, $K$2:$L$10, 2, FALSE), "未分類")
この数式は、「まずVLOOKUP(G2, $K$2:$L$10, 2, FALSE)を実行し、結果がエラーであれば代わりに『未分類』と表示する」という意味です。VLOOKUPが正常に見つかった場合はそのまま検索結果が表示され、見つからなかった場合だけ「未分類」に置き換わります。
XLOOKUPと組み合わせる例
XLOOKUPには、もともと「見つからない場合」という引数が用意されているため、IFERROR関数を使わなくてもエラーを防ぐことができます。
=XLOOKUP(G2, $K$2:$K$10, $L$2:$L$10, "未分類")
4番目の引数に直接「未分類」と指定するだけで、VLOOKUP+IFERROR相当の処理ができてしまいます。この手軽さも、以前紹介したXLOOKUPのメリットの一つです。
よくある間違い
- IFERROR関数の2つの引数の順番を逆にしてしまう(
=IFERROR("未分類", VLOOKUP(...))のように書くと、常に「未分類」が表示されてしまい、正しい検索結果が出なくなる) - 検索値の方をIFERRORで包んでしまう(
=VLOOKUP(IFERROR(G2,"未分類"), ...)のような書き方は、検索値自体にIFERRORをかけているだけで、VLOOKUPのエラーは防げていない) - IFERRORで全てのエラーを表示しないようにしてしまい、本当は直すべき数式のミスにも気づけなくなる(IFERRORは「本来ありうるエラー」を想定して使うものであり、数式の間違いをごまかすためのものではない点に注意)
まとめ
IFERROR関数は「本来の数式」と「エラー時に表示したい値」の2つを、=IFERROR(数式, エラーの場合の値)という順番で指定するだけのシンプルな関数です。VLOOKUPと組み合わせることで、表に載っていないデータがあってもエラーを見た目よく処理できます。
以前紹介した「Excel演習ドリル」では、VLOOKUPのエラーをIFERRORで防ぐ問題も含まれています。この記事を読んだあとにぜひ挑戦してみてください。
VLOOKUP・XLOOKUPの基本があやふやな人は、先にこちらの記事もあわせてご覧ください。
→ VLOOKUP関数の使い方|引数の意味と「検索方法」TRUE・FALSEの違い
→ XLOOKUP関数とは?VLOOKUPとの違いとメリットをわかりやすく解説
次は、複数条件でデータを数えるCOUNTIFS関数を解説していきます。


コメント