条件
IFERROR関数の使い方・読み方
読み方:IFERROR は「イフエラー」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
IFERRORは、数式がエラーになったとき、代わりの値を返す関数です。
このページの中身(21項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
IFERROR(値, [エラー値])
https://support.google.com/docs/answer/3093304 - Microsoft サポート:IFERROR 関数
https://support.microsoft.com/ja-jp/excel/functions/iferror-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
#N/A や #DIV/0! が並んだ表は見栄えが悪く、その先の計算まで巻き込んでエラーにします。IFERRORで包めば一発で解決します。
ただし、この関数はエラーの原因ごと隠してしまうという副作用を持っています。使いどころを間違えると、間違った数字に気づけなくなります。

書式
=IFERROR(値, [エラーの場合の値])
| 引数 | 内容 |
|---|---|
| 値 | 通常時に表示したい数式 |
| エラーの場合の値 | エラー時に返す値。省略すると空白 |
基本の使い方
=IFERROR(A2 / B2, 0)
B2が0や空欄なら #DIV/0! になりますが、IFERRORで包むと 0 が返ります。
何も表示したくないなら "" を指定します。
=IFERROR(A2 / B2, "")
原因を伝えたいなら、そのままメッセージを書けます。
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "マスタ未登録")
「何も出ない」より「未登録」と出るほうが、使う人にとって親切です。空白は原因が分かりませんが、メッセージなら次の行動が決まります。

対象になるエラー
IFERRORは、次のすべてを捕まえます。
| エラー | 意味 |
|---|---|
#N/A | 検索して見つからなかった |
#DIV/0! | 0で割った |
#VALUE! | 引数の型が違う |
#REF! | 参照先が無効 |
#NAME? | 関数名や名前の綴りが違う |
#NUM! | 計算結果が扱える範囲外 |
#ERROR! | 数式の書き方が不正 |
ここが問題です
見つからなかっただけの #N/A も、関数名を打ち間違えた #NAME? も、参照が壊れた #REF! も、区別なく同じ値に置き換わります。
使ってはいけない場面
原因を確かめる前に包む
これが最も危険な使い方です。
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "")
一見きれいになりますが、本当は取得できるはずのデータが黙って消えている可能性があります。範囲指定のミス、検索キーの余分なスペース、列番号の間違い——これらが全部空白として処理されます。
手順としては、まずIFERROR無しで数式を書き、出たエラーの原因を特定してから包む。これを守ってください。
合計の中に紛れ込ませる
=SUM(IFERROR(A2:A100 / B2:B100, 0))
割れなかった行が0として合計されます。数字は出ますが、その0が「本当に0なのか」「計算できなかったのか」が区別できません。集計値の信頼性が落ちます。
検索の失敗を握りつぶす
マスタとの突合で #N/A が出るのは、マスタに無いデータがあるという重要な情報です。これを空白にすると、データの不備が見えなくなります。
むしろ #N/A は残しておき、件数を数えて監視するのが正しい運用です。
=COUNTIF(C2:C100, "#N/A")
使っていい場面
見つからないことが正常な場合
「該当があれば表示、無ければ空欄」が仕様として正しい場合。任意項目の突合などです。
分母が空欄になりうる場合
=IFERROR(売上 / 客数, "")
まだ入力されていない行で #DIV/0! が出るのは想定内です。
エラーの原因を特定し終えた後
原因を潰したうえで、残る想定内のエラーだけを整えるために使う。これが本来の用途です。
IFNAで絞り込む
#N/A だけを捕まえたいなら、IFNA を使います。
=IFNA(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "未登録")
#N/A(見つからなかった)だけが置き換わり、#REF! や #NAME? はエラーのまま残ります。つまり、本当の不具合は表面化させたまま、想定内の空振りだけを整えられます。
IFERRORよりIFNAのほうが安全な場面は多いので、検索系ではまずIFNAを検討してください。
XLOOKUPなら包む必要がない
XLOOKUP は「見つからない場合」を4つ目の引数で直接指定できます。
=XLOOKUP(A2, マスタ!A:A, マスタ!B:B, "未登録")
これはIFNAと同じく、見つからなかったケースだけを扱います。範囲指定のミスはエラーとして出ます。書き方も短く、安全性も高い。検索でエラー処理が要るなら、まずXLOOKUPを検討してください。
エラーを消すことと、原因を直すことは別
IFERRORは便利な関数ですが、使い方を誤ると表計算のファイルを壊れやすくします。この関数がやっているのは、エラーが出たときに別の値を返すことだけです。エラーが出た原因は何も解決していません。表示が消えるだけです。
問題は、エラーが「何かがおかしい」という唯一の合図であることです。検索が見つからない、参照先が消えた、割る数がゼロになっている。こうした異常を、表計算は自分から教えてくれません。エラー表示だけが手がかりです。それをIFERRORで包んでしまうと、異常が起きていることに誰も気づかなくなります。
実際に起きる事故はこうです。マスタから商品名を引く数式をIFERRORで包み、見つからないときは空欄が出るようにしていた。ある日、マスタの並び順が変わって参照範囲がずれたが、空欄になるだけなので誰も気づかない。数か月後、集計値が合わないことが発覚したときには、どこから間違っていたのか追えなくなっている。
したがって、順番が大事になります。まず数式を書く。エラーが出たら、なぜ出たのかを確かめて直す。正しく動くことを確認する。そのうえで、業務上どうしても表示させたくないエラーだけをIFERRORで包む。この順番を守れば、IFERRORは安全に使えます。
包んでいい場面と、いけない場面
包んでいいのは、エラーが出ることが正常な動作である場合です。
たとえば、入力欄がまだ空のときに計算式がゼロ除算になる場合。入力されていないのだから計算できないのは当然で、エラーではなく空欄を表示するほうが自然です。この場合は、そもそもIF関数で空欄を先に判定するほうが意図が明確になります。
もうひとつは、検索の対象がまだ登録されていない場合です。新規の商品コードを入力した直後は、マスタに存在しないのでエラーになります。これは想定内なので、未登録という表示を返すほうが親切です。空欄ではなく「未登録」という文字を返すようにすると、入力者が状況を理解できます。
一方、包んではいけないのは、エラーの原因が特定できていない場合です。なぜエラーが出るのか分からないまま包むのは、警告灯にテープを貼るのと同じです。原因が残ったまま、見えなくなるだけです。
また、複数の種類のエラーが起こりうる数式を丸ごと包むのも危険です。検索が見つからないことは想定内でも、参照先が消えていることは想定外です。この二つを同じように隠してしまうと、区別がつかなくなります。想定内のエラーだけを対象にできる関数を使うほうが安全です。
エラーの種類ごとに扱いを変える
表計算で出るエラーには種類があり、それぞれ意味が違います。区別できると、対処の精度が上がります。
該当なしを意味するエラーは、検索系の関数が返します。値が見つからなかったという事実を伝えているだけで、数式自体は正常です。想定内の場合が多く、専用の関数で個別に処理できます。
参照が無効というエラーは、参照先のセルや行が削除されたときに出ます。これは構造の破壊なので、隠してはいけません。必ず原因を直してください。
値が不適切というエラーは、文字列を数値として計算しようとしたときなどに出ます。データの型に問題があるので、元データを見直す必要があります。
名前が不明というエラーは、関数名の綴り間違いか、定義されていない名前を参照しています。単純なミスなので、すぐ直せます。
ゼロで割ったというエラーは、分母がゼロか空欄です。入力待ちなら想定内、そうでなければデータの問題です。
この五つを見分けられるだけで、対処の当たりがつくようになります。エラーを一括で隠すのではなく、種類ごとに扱いを決めるのが本来の姿です。
該当なしだけを対象にする
検索系の数式で使うなら、すべてのエラーを対象にするIFERRORより、該当なしだけを対象にする関数のほうが適しています。この関数を使えば、検索が見つからなかったときだけ別の値を返し、参照の破壊や型の不一致はそのままエラーとして表示されます。
つまり、想定内のエラーは隠し、想定外のエラーは見えるようにできます。これがもっとも安全な使い方です。
新しい検索関数を使える環境なら、そもそも包む必要がありません。見つからないときに返す値を、関数の引数として直接指定できるからです。数式が短くなるうえに、他のエラーを巻き込む心配もありません。書き換えられる箇所は、そちらに移していく価値があります。
エラーを見える形で管理する
エラーを隠すのではなく、管理する。この発想に切り替えると、ファイルの信頼性が上がります。
シートの上部に、エラーの件数を表示する数式を置きます。件数が変わったときだけ調べればよくなるので、日常的な監視の負担がありません。
条件付き書式で、エラーのセルに色を付けます。目立たせておけば、シートを見た瞬間に異常が分かります。エラー回避で隠すのとは正反対の発想ですが、実務ではこちらのほうが安全です。
種類ごとに件数を分けて表示する方法もあります。該当なしが増えたのか、参照の破壊が起きたのか。原因の当たりがつきます。
想定されるエラーと、想定外のエラーを分けて扱ってください。検索の該当なしは想定内かもしれませんが、参照の破壊は必ず異常です。前者だけを専用の関数で処理し、後者は表示させたままにします。
大きなファイルを引き継いだときも、まずこの仕組みを入れてください。エラーの分布を把握すれば、そのファイルがどれだけ健全かが分かります。
隠す前に原因を潰す手順
エラーが出たとき、隠す前にやるべきことがあります。順序を決めておけば迷いません。
第一に、エラーの種類を読みます。種類ごとに原因はほぼ決まっています。
第二に、数式を分解します。入れ子になっている場合、内側の部分だけを別のセルに取り出して実行してください。どこで失敗しているかが分かります。
第三に、データを確認します。型の違い、前後の空白、改行の混入。文字数を数えれば余計な文字の有無が分かります。
第四に、範囲を確認します。絶対参照が抜けてコピーでずれていないか。開始行が揃っているか。
第五に、想定内かどうかを判断します。原因が分かったうえで、それが業務上起こりうることなら、想定内です。起こってはいけないことなら、原因そのものを直します。
第六に、想定内のエラーだけを隠します。このとき、種類を限定できる関数を使ってください。すべてのエラーを一括で隠すと、想定外の異常まで見えなくなります。
この六段階を踏めば、隠すべきものと直すべきものを取り違えません。手順を飛ばして先に隠すと、後で必ず困ることになります。
「条件」の関数を全体から見る
条件は判定と分岐の関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに14本あります。
このカテゴリで共通するつまずき
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 ←この記事 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. IFERRORで包んだら計算が合わなくなりました
エラーのときにゼロを返していると、平均を出すときに件数に含まれてしまいます。平均も計算する表では、ゼロではなく空文字を返すほうが安全です。
Q. 空欄を返したのに、空白として扱われません
空文字は見た目には空欄ですが、空セルではありません。件数を数える関数では一件として数えられます。この違いでつまずくことがよくあります。
Q. 二重に包んでも大丈夫ですか
動作はしますが、数式が読みにくくなります。原因が複数あるなら、それぞれを分けて処理するほうが分かりやすくなります。
Q. 条件付き書式でエラーのセルに色を付けられますか
できます。エラーかどうかを判定する関数を条件にすれば、エラーだけを目立たせられます。包んで隠すより、この方法のほうが安全な場合もあります。
Q. エラーを一括で調べる方法はありますか
シート内のエラーを数える数式を用意しておくと便利です。件数が変わったときだけ調べればよくなります。
Q. 印刷のときだけエラーを隠せますか
ページ設定で、エラー値の印刷方法を指定できます。数式は変えずに、印刷結果だけ空欄にできます。
Q. 元データを直せない場合はどうすればいいですか
外部から取り込むデータで手を入れられない場合は、取り込んだ直後に整形する作業列を用意してください。数式の中で毎回処理するより保守しやすくなります。
Q. エラーが出ている数式を探せますか
ジャンプ機能で数式やエラーを含むセルだけを選択できます。シート全体を目で追う必要はありません。
まとめ
- 書式は
=IFERROR(値, エラー時の値) - すべての種類のエラーを区別なく置き換える
- 原因を特定する前に包まない
- 空白より「未登録」などのメッセージのほうが親切
#N/AだけならIFNA、検索なら XLOOKUP の第4引数
関連する関数
- XLOOKUP — 見つからない場合を直接指定できる
- VLOOKUP —
#N/Aの原因はこちらで解説 - IF — 条件による分岐
- エラーの原因と直し方 — エラー種別ごとの対処一覧
- 関数一覧に戻る