「VLOOKUPで一致するデータがないと#N/Aが表示されて表が見苦しい」「割り算の結果が#DIV/0!になってしまい、報告書として使えない」「空白セルかどうかを正確に判定したい」——Excelでデータ処理をしていると、こうしたエラーや空白のハンドリングに悩むことは多いです。
IFERROR関数を使えば、エラーが発生したときに任意の値や文字列を返すことができ、表の見た目をきれいに保ったまま数式を動かせます。ISERROR・ISERR・ISNA関数ではエラーの種類を判定して条件分岐の材料にでき、ISBLANK関数では空白セルかどうかを厳密に判定できます。これらのIS系関数はMOS Excel試験でも頻出です。本記事では、Excelの主要エラーの種類と原因・IFERROR関数の構文と実務パターン・ISERROR系関数の使い分け・ISBLANK関数と空文字列の違い・MOS試験攻略法まで2026年最新版で徹底解説します。
「エラーの出ない見やすいExcel表を作りたい」「MOS試験のIS系関数問題を確実に得点したい」という方は、ぜひ最後までお読みください。
Excelの主要エラーの種類と原因を理解する
IFERROR・ISERROR関数を適切に使うために、まずExcelに存在するエラーの種類と、それぞれの発生原因を把握しておくことが重要です。
主要エラー一覧と発生原因
| エラー | 名称 | 主な発生原因 | よくある例 |
|---|---|---|---|
| #N/A | 値なしエラー | 検索関数で一致する値が見つからない | VLOOKUPで検索値が表にない |
| #VALUE! | 値エラー | 引数の型が合っていない(数値が必要な場所に文字列など) | 文字列が入ったセルを数値計算に使う |
| #DIV/0! | ゼロ除算エラー | 数値を0または空白セルで割っている | =A1/B1 でB1が0や空白 |
| #REF! | 参照エラー | 参照先のセルが削除されるなど無効な参照 | 行・列を削除して数式の参照先がなくなった |
| #NAME? | 名前エラー | 関数名のスペルミス・名前の定義なしに名前を使用 | =SUIM(A1:A5) のようなタイポ |
| #NUM! | 数値エラー | 数値として処理できない値・演算結果が表現範囲を超える | 負の数の平方根・DATEDIF引数逆転 |
| #NULL! | 空白エラー | 範囲演算子の使い方が誤っている | =SUM(A1:A5 B1:B5) のようにコンマなしで範囲指定 |
| #### | 表示幅エラー | 列幅が狭くて数値・日付を表示しきれない | 列を狭くしすぎた状態で日付が入っている |
####はエラー関数では検出できません。列幅を広げることで解決します。一方、#N/A・#VALUE!・#DIV/0!・#REF!・#NAME?・#NUM!・#NULL!はIFERRORやISERRORで処理できます。エラーの種類を見ればおおよそ何が原因かわかるため、まず原因を特定して根本修正を検討し、それが難しい場合にIFERROR等でエラーを非表示にする、という順序で対応するのがベストプラクティスです。
IFERROR関数:エラーを任意の値に置き換える
IFERROR関数はExcel 2007以降で使えるようになった関数で、数式がエラーを返した場合に代替の値を返します。エラー処理の中で最もよく使われる関数です。
IFERROR関数の構文と引数
IFERROR関数の構文は「=IFERROR(値, エラーの場合の値)」です。
| 引数 | 意味 | 使用例 |
|---|---|---|
| 値 | 評価する数式またはセル参照 | VLOOKUP(A2, $D$2:$F$100, 2, FALSE) |
| エラーの場合の値 | 値がエラーのときに返す値・文字列・数式 | “未登録”(テキスト)または 0(数値)または “”(空文字) |
「=IFERROR(VLOOKUP(A2,$D$2:$F$100,2,FALSE),”未登録”)」と書くと、VLOOKUP関数が#N/Aを返した場合(検索値が見つからない場合)に「未登録」という文字列を表示します。エラーでなければVLOOKUPの検索結果がそのまま表示されます。
第2引数に指定できる値は文字列・数値・空文字・数式・セル参照など、ほぼ何でも使えます。エラーのときに空白にしたい場合は””(空文字)を指定します。エラーのときに0を返して集計に影響させたくない場合は0を指定します。
IFERROR関数の基本的な使用パターン
| 用途 | 数式例 | エラー時の表示 | 解説 |
|---|---|---|---|
| VLOOKUP + 未登録表示 | =IFERROR(VLOOKUP(A2,$D$2:$E$50,2,FALSE),”未登録”) | 未登録 | 検索値がない場合に「未登録」と表示 |
| VLOOKUP + 空白 | =IFERROR(VLOOKUP(A2,$D$2:$E$50,2,FALSE),””) | (空白) | エラーのときだけ空白にする |
| 割り算のゼロ除算処理 | =IFERROR(B2/C2,0) | 0 | C2が0や空白のとき0を返す |
| 割り算 + パーセント計算 | =IFERROR(B2/C2,”-“) | – | ダッシュ表示でデータなしを示す |
| INDEX・MATCH + エラー処理 | =IFERROR(INDEX($E$2:$E$50,MATCH(A2,$D$2:$D$50,0)),”該当なし”) | 該当なし | MATCH失敗時のエラーをIFERRORで受ける |
IFERROR関数はエラーの種類を問わずすべてのエラーに対して第2引数の値を返します。「#N/Aのときだけ特定の処理をして、#REF!や#VALUE!はそのままエラー表示したい」という場合は、後述するIFNA関数やIF+ISERROR関数の組み合わせを使います。
IFNA関数:#N/Aだけを処理する
IFNA関数はExcel 2013以降で使えるIFERRORの亜種で、#N/Aエラーのときだけ第2引数の値を返します。構文はIFERRORと同じで「=IFNA(値, #N/Aの場合の値)」です。
VLOOKUPと組み合わせる場合、IFERROR関数を使うと#REF!(参照エラー)が起きても隠れてしまいますが、IFNA関数を使えば#N/A以外のエラーはそのまま表示されるため、数式のバグに気づきやすくなります。
| 関数 | 処理対象 | 使い分けのポイント |
|---|---|---|
| IFERROR | すべてのエラー(#N/A, #VALUE!, #DIV/0!, #REF!など) | エラーの種類を問わず隠したい場合 |
| IFNA | #N/Aエラーのみ | VLOOKUPの検索結果エラーだけ処理し、その他のエラーは表示したい場合 |
ISERROR・ISERR・ISNA関数:エラーの種類を判定する
IS系の関数はセルや数式の状態を判定してTRUE/FALSEを返す関数群です。IF関数と組み合わせることで、エラーの種類に応じた条件分岐ができます。
IS系エラー判定関数の一覧
| 関数 | TRUEを返す条件 | FALSEを返す条件 | 備考 |
|---|---|---|---|
| ISERROR(値) | 値がいずれかのエラーのとき | 値が数値・文字列・論理値・空白のとき | #N/A含むすべてのエラーを検出 |
| ISERR(値) | #N/A以外のエラーのとき | 値が#N/Aまたはエラー以外のとき | #N/Aを除外してエラー判定したいとき |
| ISNA(値) | 値が#N/Aのとき | 値が#N/A以外のとき | #N/Aだけを判定したいとき |
| ISNUMBER(値) | 値が数値のとき | 値が数値以外のとき | 入力値の型チェックに使う |
| ISTEXT(値) | 値が文字列のとき | 値が文字列以外のとき | 文字列か数値かを判定する |
| ISBLANK(値) | 値が空のセルを参照しているとき | セルに何か入力されているとき | 空文字列””は空白と判定されない |
| ISLOGICAL(値) | 値が論理値(TRUE/FALSE)のとき | 値が論理値以外のとき | 条件チェックの結果型確認に使う |
IF + ISERROR の組み合わせパターン
IFERROR関数が登場する前(Excel 2003以前)は「=IF(ISERROR(数式), エラー時の値, 数式)」という書き方が標準的でした。現在でも互換性のためや、エラーの種類によって処理を分けたい場合に使われます。
| 記述方法 | 数式例 | 特徴 |
|---|---|---|
| IFERROR(推奨) | =IFERROR(VLOOKUP(A2,$D$2:$E$50,2,FALSE),”未登録”) | 短く書ける。Excel 2007以降。VLOOKUPが1回だけ計算される |
| IF + ISERROR(旧式) | =IF(ISERROR(VLOOKUP(A2,$D$2:$E$50,2,FALSE)),”未登録”,VLOOKUP(A2,$D$2:$E$50,2,FALSE)) | Excel 2003以前でも動く。VLOOKUPが2回計算されるためデータが大量の場合は処理が遅い |
| IF + ISNA(#N/Aのみ処理) | =IF(ISNA(VLOOKUP(A2,$D$2:$E$50,2,FALSE)),”未登録”,VLOOKUP(A2,$D$2:$E$50,2,FALSE)) | #N/Aのみ処理。#REF!などは表示される |
IF+ISERRORを使うと数式が2回評価されるため、大量データに対してVLOOKUPやINDEX・MATCHを適用しているシートでは処理速度が低下する場合があります。現代のExcelではIFERRORまたはIFNAを使う方が効率的です。
ISBLANK関数:空白セルを正確に判定する
ISBLANK関数はセルが完全に空(何も入力されていない状態)かどうかを判定します。一見シンプルですが、「空に見えるが実は空白ではない」ケースがあるため、正確な動作を理解することが重要です。
ISBLANK関数の構文と動作
ISBLANK関数の構文は「=ISBLANK(テストの対象)」です。引数にはセル参照を指定します。セルが完全に空のときTRUEを返し、何かが入っているときFALSEを返します。
| セルの状態 | ISBLANK結果 | =””との比較結果 | 備考 |
|---|---|---|---|
| 完全に空(何も入力なし) | TRUE | TRUE | 本当の空白。ISBLANKと=””の両方がTRUE |
| 空文字列(“”)が入力されている | FALSE | TRUE | 見た目は空白だがISBLANKはFALSE |
| スペースが入力されている | FALSE | FALSE | 見た目は空白だが両方FALSE |
| 数値(0含む)が入力されている | FALSE | FALSE | 0もFALSE |
| 文字列が入力されている | FALSE | FALSE | 文字があるためFALSE |
| 数式が空文字列””を返している | FALSE | TRUE | 数式由来の空文字列はISBLANK=FALSE |
最も注意が必要なのは「空文字列””が入力されている」または「数式が””を返しているセル」です。これらは見た目は空白に見えますが、ISBLANK関数ではFALSEが返されます。IFERROR関数のエラー時の値として””を指定したセルを後続の数式でISBLANKで判定しても、TRUEにならないということです。
ISBLANKと=””の使い分け
「=A2=””」という条件式は、完全な空白セルのときも空文字列が入力されているときもTRUEを返します。完全な空白のみを判定したい場合はISBLANKを使い、完全な空白と空文字列の両方を空として扱いたい場合は「=””」を使います。
| 目的 | 推奨する書き方 | 注意点 |
|---|---|---|
| 完全な空白だけを検出 | =ISBLANK(A2) | “”を返す数式の結果は空白と判定されない |
| 空白と空文字列の両方を「空」として扱う | =A2=”” | スペースだけが入ったセルはFALSE |
| 未入力チェック(入力ガイド) | =IF(ISBLANK(A2),”入力してください”,””) | 元データをDelete Keyで消したものはTRUE、数式削除で空になったものもTRUE |
| 空・空文字両方を一括チェック | =IF(A2=””,”入力してください”,””) | “”を返す数式が入っているセルも「未入力」と判定される |
ISBLANKの実務活用パターン
- 必須入力チェック:「=IF(ISBLANK(B2),”氏名が未入力です”,”OK”)」のように入力フォームの検証に使う。条件付き書式と組み合わせると未入力セルを色で強調できる
- 空白行のスキップ:「=IF(ISBLANK(A2),””,処理する数式)」のようにデータが入っていないときだけ計算をスキップしてエラーや意図しない結果を防ぐ
- COUNTBLANK関数との比較:COUNTBLANK関数はある範囲内の空白セルの数を返す(空文字列も空としてカウントする)。「=COUNTBLANK(A2:A100)」で未入力数を把握できる
- 配列数式での空白除外:動的配列関数のFILTER関数と組み合わせ、「=FILTER(A2:A100,NOT(ISBLANK(A2:A100)))」で空白行を除いたリストを生成できる(Excel 365・2021以降)
実務シナリオ別・エラー処理の実践パターン
IFERROR・ISBLANK・IS系関数を組み合わせた実務的な使い方を、よくある業務シナリオごとに解説します。
シナリオ1:VLOOKUP + IFERRORで未登録を明示する
顧客リストや商品マスタに対してVLOOKUPで情報を引っ張る際、マスタに存在しないコードを参照すると#N/Aエラーになります。IFERRORと組み合わせることで「未登録」「マスタなし」などの文字列を表示できます。
「=IFERROR(VLOOKUP(A2,商品マスタ!$A$2:$C$200,2,FALSE),”(マスタ未登録)”)」
この数式では商品コードが商品マスタに存在すれば商品名を、存在しなければ「(マスタ未登録)」を表示します。さらに、IFERRORの第2引数にも数式を使うことができます。たとえばメインのマスタになければサブマスタも検索する二段階VLOOKUP構成は次のように書けます。
「=IFERROR(VLOOKUP(A2,メインマスタ!$A$2:$B$100,2,FALSE),IFERROR(VLOOKUP(A2,サブマスタ!$A$2:$B$50,2,FALSE),”未登録”))」
IFERRORをネストすることでフォールバック検索が実現できます。
シナリオ2:ゼロ除算エラーを0またはダッシュで処理する
売上比率や達成率などを計算するとき、分母が0の場合に#DIV/0!エラーが発生します。月次レポートでまだデータが入っていない行で発生することが多いです。
| 数式 | 用途 | ポイント |
|---|---|---|
| =IFERROR(B2/C2,0) | 集計に影響させたい場合 | エラーを0として扱い、SUM集計に含める |
| =IFERROR(B2/C2,”-“) | 見た目をきれいにしたい場合 | ダッシュ表示。この列でSUM等を使う場合は注意(文字列混在) |
| =IFERROR(B2/C2,””) | 空白にしたい場合 | 空白扱い。条件付き書式との組み合わせが簡単 |
| =IF(C2=0,0,B2/C2) | 分母ゼロを事前チェック | IFERRORより明示的。分母が空白の場合は別途対応が必要 |
分母ゼロを0に置き換えるか”-“に置き換えるかは、後続の集計処理に依存します。SUM関数や平均計算でそのセルを参照する場合、”-“(文字列)が入るとエラーになるため、集計に使う列では0または””が安全です。
シナリオ3:ISBLANK + IFで入力状況を表示する
作業管理表や申請フォームで、必須項目が未入力かどうかをA列に自動判定して表示する構成はよく使われます。
「=IF(ISBLANK(B2),”▲未入力”,”OK”)」
このようなチェック列を作り、条件付き書式で「▲未入力」を赤く表示することで、入力漏れを視覚的に防ぐことができます。複数列を同時に確認したい場合は「=IF(OR(ISBLANK(B2),ISBLANK(C2),ISBLANK(D2)),”未入力あり”,”完了”)」のようにISBLANKをOR条件に組み込みます。
シナリオ4:ISNUMBER・ISTEXTでデータ型を検証する
外部システムから取り込んだデータで、数値の列に文字列が混入しているとSUMやAVERAGEが正しく計算されません。ISNUMBER・ISTEXTを使って型チェック列を設けることで、データ品質を確認できます。
「=IF(ISNUMBER(B2),”数値OK”,”⚠文字列混入”)」
見た目が数字に見えても、左寄りに表示されているセルは文字列として格納されています。ISTEXTで「TRUE」が返ってくる場合は、その列をSUM等で集計してもカウントされないため注意が必要です。
MOS Excel試験でのIS系関数の出題パターンと攻略法
MOS Excel 365試験ではIFERROR関数・ISBLANK関数を中心にIS系の関数が出題されます。エラー処理の概念と各関数の構文を正確に把握しておくことが得点のポイントです。
頻出問題の傾向
- パターン1:IFERROR基本問題——「セルC2のVLOOKUP関数にエラー処理を追加し、エラーの場合は”該当なし”と表示してください」のようなIFERROR+VLOOKUP構成の問題。既存の数式をIFERRORで囲む操作が求められる
- パターン2:ISBLANK + IF問題——「セルD2にB2が空白の場合は”未入力”、空白でない場合は”入力済”と表示する数式を入力してください」というIF+ISBLANK基本問題
- パターン3:ゼロ除算エラー処理——「D2に売上比率(B2/C2)を計算し、0除算エラーの場合は0を表示する数式を入力してください」というIFERROR+除算の問題
- パターン4:ISERROR + IF問題——「セルE2に数式がエラーの場合は”エラー”、そうでない場合は計算結果を表示する数式を入力してください」というIF+ISERROR構成の問題
- パターン5:IFERROR内でのネスト問題——IFERROR関数でラップされた複雑な数式を完成させる問題。IFERRORの引数構成を正確に理解していないと入れ子の位置を間違えやすい
間違えやすいポイントと対策
- 間違い1:IFERRORの第2引数に文字列を指定するときダブルクォートを忘れる——「=IFERROR(A2/B2,エラー)」は#NAME?になる。「=IFERROR(A2/B2,”エラー”)」のようにダブルクォートで囲む必要がある
- 間違い2:ISBLANKで空文字列””を空白と誤解する——ISBLANK関数は完全な空セルのみTRUE。数式が””を返しているセルはFALSE。試験では「IFERROR関数で””を返すセル」をISBLANKで判定する問題が出ることがあり、FALSE(空白ではない)という結果が正答になる
- 間違い3:ISERROR関数とISNA関数の違いを混同する——ISERRORはすべてのエラーでTRUE、ISNAは#N/Aのみでかつ他のエラーではFALSEを返す点を押さえる
- 間違い4:IFERROR(Excel 2007以降)とIF+ISERROR(旧式)を混同する——試験はExcel 365の環境で行われるためIFERRORを使うのが正解。ただしIF+ISERRORで同じ結果を出す問題が出た場合は正確な順序(エラー判定→エラー時の値→元の数式)を覚える
- 間違い5:IFERRORの引数順序を逆にする——正しくは「=IFERROR(正常時の数式, エラー時の値)」。第1引数が評価する数式、第2引数がエラー時の代替値という順序を覚える
試験前に確認するポイントまとめ
| 確認ポイント | 内容 |
|---|---|
| IFERROR構文 | =IFERROR(値, エラーの場合の値)。すべてのエラーに対して第2引数を返す |
| IFNA構文 | =IFNA(値, #N/Aの場合の値)。#N/Aのみ処理。Excel 2013以降 |
| ISERROR構文 | =ISERROR(値)。すべてのエラーでTRUE、それ以外はFALSE |
| ISNA構文 | =ISNA(値)。#N/AのときのみTRUE |
| ISBLANK構文 | =ISBLANK(テストの対象)。完全な空セルのみTRUE。空文字列・スペース・数式結果の””はFALSE |
| ISBLANKと=””の違い | =””は空白と空文字列の両方でTRUE。ISBLANKは完全な空のみTRUE |
| 主要エラーの種類 | #N/A(値なし)、#VALUE!(型エラー)、#DIV/0!(ゼロ除算)、#REF!(参照エラー)、#NAME?(名前エラー) |
| IFERRORと文字列第2引数 | 文字列にはダブルクォートが必須。”未登録”や”エラー”など |
| IFERRORのネスト | 第2引数にIFERRORを入れてフォールバック検索が可能 |
| ISNUMBER・ISTEXT | セルが数値かどうか・文字列かどうかを判定。データ型検証に使う |
まとめ:IFERROR・ISERROR・ISBLANKでエラーと空白を完全制御する
IFERROR・IS系関数・ISBLANK関数を使いこなすことで、エラーや空白が混在しても崩れない堅牢なExcelシートを作ることができます。要点をまとめます。
- Excelの主要エラーは#N/A・#VALUE!・#DIV/0!・#REF!・#NAME?・#NUM!・#NULL!の7種類。####は列幅の問題でIFERROR等では処理できない
- IFERROR関数は「=IFERROR(値, エラーの場合の値)」の構文で、値がいずれかのエラーを返した場合に第2引数を返す。第2引数には文字列・数値・空文字・数式が使える
- IFNA関数は#N/Aのみを処理する。VLOOKUPと組み合わせる場合、IFNAの方が#REF!などのバグを隠さないため安全なケースが多い
- ISERROR関数はすべてのエラーでTRUEを返す。ISNAは#N/AのみTRUE。ISERRは#N/A以外のエラーでTRUEを返す
- IF+ISERROR(旧式)はVLOOKUP等の数式を2回評価するため大量データでは低速。現代のExcelではIFERRORを使うのが標準
- ISBLANK関数は完全な空セルのみTRUEを返す。空文字列””が入力されているセルや、数式が””を返しているセルはFALSE。空白と空文字列の両方を「空」と判定したいときは「=””」を使う
- 実務では「IFERROR+VLOOKUP」「IFERROR+割り算」「ISBLANK+IF」「ISNUMBER+IF」の組み合わせが頻出
- MOS試験ではIFERRORの構文・ISBLANKの動作(空文字列≠空白)・ISERROR/ISNAの違いがよく問われる
当サイトでは、Excel・Word・PowerPoint・AccessのOffice操作やMOS試験対策に関する記事を多数発信しています。ぜひ他の記事もご覧ください。
