Excelで数式を入力したら、セルに #DIV/0! や #VALUE! といった見慣れない文字列が表示された経験はありませんか。
エラーの意味がわからないまま放置すると、集計結果がずれたり、上司に提出する資料の数字が崩れたりと、思わぬトラブルにつながります。
この記事では、Excelで表示されるエラー値12種類の原因と対処法を一覧で解説します。各エラーにはNG例・OK例の数式を載せているので、いま画面に表示されているエラーをすぐに解決できます。
エラー値とは?Excelがエラーを表示する仕組み
エラー値とは、数式が正しく計算できないときにExcelがセルに返す特殊な文字列のことです。先頭に # が付いているのが特徴で、「この数式には問題がありますよ」とExcelが教えてくれているサインだと考えてください。
エラーが出る原因はおもに次の3パターンに分かれます。
- 引数の型や値が不正 — 数値が必要な場所に文字列を渡した場合など
- 参照先が存在しない — セルや行・列が削除された、検索値が見つからない場合など
- 数式の書き方自体に問題がある — 関数名のスペルミス、演算子の使い間違いなど
エラー値は全部で12種類あります。そのうち7種は従来のExcelに搭載されている基本エラーです。残りはMicrosoft 365やExcel 2021以降で追加されたモダンエラーです。
まずは全体像を早見表で確認しましょう。
【早見表】Excelエラー値12種類の一覧
| エラー値 | 読み方 | 原因の要約 | 発生しやすい関数・操作 |
|---|---|---|---|
#DIV/0! | ディバイド・パー・ゼロ | ゼロまたは空白セルで除算 | 四則演算(/)、AVERAGE(空範囲)、MOD |
#VALUE! | バリュー | 引数の型が不一致 | SUMIF、COUNTIF、DATE、四則演算(文字列混在) |
#REF! | リファレンス | 参照先のセル・行・列が存在しない | INDIRECT、行/列削除後の数式、VLOOKUP(範囲外列番号) |
#NAME? | ネーム | 関数名や名前の定義が不正 | 関数名スペルミス、未定義の名前参照 |
#N/A | エヌエー | 検索値が見つからない | VLOOKUP、HLOOKUP、XLOOKUP、MATCH、INDEX+MATCH |
#NUM! | ナンバー | 数値が範囲外 | SQRT(負の数)、LOG(0以下)、IRR、LARGE/SMALL |
#NULL! | ヌル | 交差演算子(スペース)の誤用 | セル範囲の指定ミス |
#### | シャープ(列幅不足) | 列幅が不足 / 負の日付値 | 日付・時刻列、長い数値 |
#SPILL! | スピル | スピル範囲に障害物がある | FILTER、SORT、UNIQUE、SEQUENCE、RANDARRAY |
#CALC! | カルク | 空の配列が返された | FILTER(一致ゼロ件)、LAMBDA |
#FIELD! | フィールド | データ型のフィールドが存在しない | リンクデータ型(株価・地理) |
#GETTING_DATA | ゲッティングデータ | データ取得中(一時的) | リンクデータ型のデータ読み込み |
この表をブックマークしておくと、エラーが出たときにすぐ原因を絞り込めます。ここからは各エラーの詳細を見ていきましょう。
基本のエラー値7種の原因と対処法
まずはExcelのすべてのバージョンで発生する基本の7種類です。実務で遭遇する頻度が高いものから順に解説します。
#DIV/0!(ディバイド・パー・ゼロ)
#DIV/0! は、割り算の分母がゼロまたは空白セルになっているときに表示されるエラーです。Excelに限らず、数学の世界でも「0で割る」ことは定義されていません。
よくある発生パターン
直接ゼロで割っているケースだけでなく、参照先のセルがまだ未入力のときにも発生します。
' NG例:B1が空白またはゼロ
=A1/B1 → #DIV/0!
' NG例:空の範囲でAVERAGE
=AVERAGE(C1:C5) → C1:C5がすべて空白なら #DIV/0!
対処法
分母がゼロかどうかをIF関数で事前にチェックするのが定番です。
' OK例:IF関数でゼロ除算を回避
=IF(B1=0, "", A1/B1)
' OK例:IFERRORで一括処理
=IFERROR(A1/B1, "")
データがまだ入力途中のシートでは、あらかじめIFERROR関数を仕込んでおくとエラー表示を防げます。
#VALUE!(バリュー)
#VALUE! は、関数や数式の引数に想定外の型(数値が必要な場所に文字列など)が渡されたときに表示されます。原因の幅が広いため、12種類の中でもっとも特定が難しいエラーです。
よくある発生パターン
' NG例:文字列と数値の足し算
=A1+B1 → A1に"abc"が入っていると #VALUE!
' NG例:日付関数に文字列
=DATE(2024,"十二",1) → 月に漢数字を指定すると #VALUE!
見落としがちなのが、セルに全角スペースが入っているケースです。見た目は空白なのにExcelは「文字列が入っている」と判定するため、計算に使おうとすると #VALUE! になります。
対処法
以下の3点を順番に確認してみてください。
- 数値を指定する引数に文字列を渡していないか
- 参照先のセルにスペース(全角・半角)が混入していないか
- 参照先のセルが別のエラーを返していないか
' OK例:VALUE関数で文字列を数値に変換
=A1 + VALUE(B1)
原因が見つからないときは、数式を構成するセルを一つずつ確認して、想定外の値が入っていないかチェックするのが確実です。
#REF!(リファレンス)
#REF! は、数式が参照しているセル・行・列が削除されたときに表示されます。もう存在しない場所を見にいっている状態です。
よくある発生パターン
' NG例:B列を削除した後の数式
=A1+#REF! → 元は =A1+B1 だったが、B列削除で壊れた
' NG例:VLOOKUPの列番号が範囲外
=VLOOKUP(A1, B1:C10, 5, FALSE) → 2列しかないのに5列目を指定 → #REF!
コピー&ペーストでセルを上書きしたときにも発生することがあります。とくに行や列を丸ごと削除する操作のあとは要注意です。
対処法
数式バーを確認して、引数に #REF! と表示されている箇所があれば、そこを正しいセル参照に書き直します。
' OK例:正しい列番号に修正
=VLOOKUP(A1, B1:C10, 2, FALSE)
行や列を削除する前に、その範囲を参照している数式がないか確認する習慣をつけておくと予防できます。
#NAME?(ネーム)
#NAME? は、Excelが数式の中に「知らない名前」を見つけたときに返すエラーです。関数名のスペルミスが原因であることが大半です。
よくある発生パターン
' NG例:関数名のスペルミス
=VLOKUP(A1, B1:C10, 2, FALSE) → VLOOKUPのスペルミス → #NAME?
' NG例:文字列をダブルクォーテーションで囲み忘れ
=IF(A1=完了, "OK", "NG") → 完了が名前として解釈される → #NAME?
' NG例:掛け算に「x」を使用
=A1 x B1 → 演算子は「*」が正しい → #NAME?
対処法
次のポイントを確認すると、ほとんどのケースで解決します。
- 関数名のスペルが正しいか(入力途中に表示される候補リストを活用する)
- 文字列がダブルクォーテーション(
")で囲まれているか - 名前の定義を使っている場合、その名前が存在するか([数式]タブ → [名前の管理]で確認)
' OK例:正しいスペルと引用符
=VLOOKUP(A1, B1:C10, 2, FALSE)
=IF(A1="完了", "OK", "NG")
#N/A(エヌエー)
#N/A は、検索関数で検索値が見つからなかったときに表示されるエラーです。VLOOKUPやXLOOKUP、MATCH関数でもっとも頻繁に発生します。
よくある発生パターン
' NG例:検索値がテーブルに存在しない
=VLOOKUP("Z999", A1:B100, 2, FALSE) → Z999が見つからない → #N/A
' NG例:検索値の前後にスペースが混入
=VLOOKUP(A1, D1:E100, 2, FALSE) → A1が"東京 "(末尾スペース)→ #N/A
データのインポート時に末尾スペースが紛れ込むケースは非常に多いです。見た目では判別できないため、TRIM関数で前後のスペースを除去してから検索するのがおすすめです。
対処法
' OK例:TRIM関数でスペースを除去してから検索
=VLOOKUP(TRIM(A1), D1:E100, 2, FALSE)
' OK例:IFNAで#N/Aだけをキャッチ
=IFNA(VLOOKUP(A1, D1:E100, 2, FALSE), "該当なし")
#N/A の処理にはIFERROR関数よりもIFNAを使うのがベターです。IFNAなら #N/A 以外のエラー(数式のバグ)はそのまま表示されるため、問題を見逃しにくくなります。
#NUM!(ナンバー)
#NUM! は、数式の計算結果がExcelで扱える数値の範囲を超えたとき、または関数が解を見つけられなかったときに表示されます。
よくある発生パターン
' NG例:負の数の平方根
=SQRT(-4) → 実数の範囲では計算不可 → #NUM!
' NG例:0以下の対数
=LOG(0) → 対数は正の数のみ → #NUM!
' NG例:LARGE関数で範囲外の順位
=LARGE(A1:A5, 10) → 5個しかないのに10番目を指定 → #NUM!
対処法
引数に渡している値が、その関数の許容範囲内かどうかを確認します。
' OK例:ABS関数で絶対値にしてからSQRT
=SQRT(ABS(A1))
' OK例:IF関数で事前チェック
=IF(A1>0, LOG(A1), "計算不可")
IRR関数やRATE関数で #NUM! が出る場合は、推定値(guess)を引数で指定すると解決することがあります。
#NULL!(ヌル)
#NULL! は、セル範囲の指定でスペース(交差演算子)を誤って使ったときに表示されるエラーです。12種類の中ではもっとも発生頻度が低いエラーですが、原因を知らないと戸惑いやすいエラーでもあります。
Excelの数式では、半角スペースは「2つの範囲の共通部分(交差部分)を返す」という意味を持ちます。2つの範囲に共通部分がないと #NULL! になります。
よくある発生パターン
' NG例:カンマの代わりにスペースで区切ってしまった
=SUM(A1:A5 B1:B5) → 共通部分がない → #NULL!
' NG例:コロンを入力し忘れた
=SUM(A1 A5) → A1:A5と書くべきところ → #NULL!
対処法
ほとんどの場合、カンマ(,)またはコロン(:)の入力忘れが原因です。
' OK例:カンマで複数範囲を指定
=SUM(A1:A5, B1:B5)
' OK例:コロンで連続範囲を指定
=SUM(A1:A5)
「####」はエラー値ではない
セルに #### と表示されると一見エラーに見えますが、これはエラー値ではありません。セルの列幅が狭すぎて内容を表示しきれないときに出る「表示上の問題」です。
発生する主なケース
- 列幅に対して数値や日付が長すぎる
- 日付・時刻の計算結果が負の値になっている(例: 終了時刻 – 開始時刻がマイナス)
対処法
列幅の問題であれば、該当列のヘッダー右端をダブルクリックするだけで自動調整されます。
手順: 列ヘッダー(A, B, C...)の右端の境界線をダブルクリック
→ セルの内容に合わせて列幅が自動調整される
負の日付値が原因の場合は、数式の計算ロジック自体を見直す必要があります。たとえば =B1-A1 で開始時刻が終了時刻より大きいと負の値になるため、IF関数で順序をチェックしましょう。
モダンExcel限定エラー4種(Microsoft 365 / Excel 2021以降)
ここからはMicrosoft 365およびExcel 2021以降で追加された4つのエラー値です。動的配列数式やリンクデータ型に関連するもので、古いバージョンのExcelでは表示されません。
#SPILL!(スピル)
#SPILL! は、動的配列数式の結果が複数セルに展開(スピル)されようとしたとき、展開先に障害物があると表示されるエラーです。
よくある発生パターン(6種の原因)
' NG例:スピル先にデータが入っている
=FILTER(A1:A10, B1:B10="東京")
→ 結果が3行に展開されるが、展開先のセルに既存データがある → #SPILL!
' NG例:結合セルがスピル範囲内にある
→ 結合セルは複数セルを占有するため、スピルの障害になる
' NG例:テーブル内でスピル数式を使用
→ Excelのテーブル機能はスピルに非対応
対処法
エラーセルをクリックすると、スピル先の範囲が点線で表示されます。その範囲内にある既存データや結合セルを移動・解除してください。
' OK例:スピル先を空にしてから数式を入力
=FILTER(A1:A10, B1:B10="東京")
→ 展開先が空であれば正常にスピルされる
FILTER、SORT、UNIQUE、SEQUENCE、RANDARRAYなどの動的配列関数を使うときは、結果が展開される十分なスペースを確保しておきましょう。
#CALC!(カルク)
#CALC! は、配列数式の計算結果が空の配列になったときに表示されます。もっとも多いのは、FILTER関数で条件に一致するデータが1件もないケースです。
よくある発生パターン
' NG例:FILTER関数で一致ゼロ件
=FILTER(A1:A10, B1:B10="該当なし")
→ 条件に合うデータがない → 空の配列 → #CALC!
' NG例:LAMBDAの呼び出し忘れ
=LAMBDA(x, x*2) → 引数を渡さず定義だけ → #CALC!
対処法
FILTER関数の場合は、第3引数に「一致ゼロ件のときの代替値」を指定できます。
' OK例:FILTER関数の第3引数で代替値を指定
=FILTER(A1:A10, B1:B10="東京", "該当データなし")
→ 一致ゼロ件のとき「該当データなし」と表示される
この第3引数はFILTER関数の便利な機能なので、ぜひ覚えておいてください。
#FIELD!(フィールド)
#FIELD! は、リンクデータ型(株価データ型・地理データ型)で、指定したフィールドが存在しないときに表示されるエラーです。
よくある発生パターン
' NG例:存在しないフィールドを参照
=A1.人口 → A1が「株価」データ型で「人口」フィールドがない → #FIELD!
対処法
セルをクリックしてデータ型のカードを開き、利用可能なフィールド一覧から正しいフィールド名を確認します。データ型を「地理」から「株価」に設定し直す必要がある場合もあります。
#GETTING_DATA(ゲッティングデータ)
#GETTING_DATA は、外部ソースからデータを取得中であることを示す一時的な表示です。厳密にはエラーではなく、データの読み込みが完了すれば自動的に消えます。
対処法
基本的には待つだけで解消されます。数分経っても消えない場合は、以下を試してみてください。
- ネットワーク接続を確認する
Ctrl + Alt + F9で強制再計算を実行する- ファイルを保存してExcelを再起動する
エラー処理関数の使い分け
エラーの原因を直すのが最善ですが、「データ未入力の段階ではエラーが出るのは仕方ない」というケースもあります。そんなときはエラー処理関数を使って、エラー表示を制御しましょう。
以下がエラー処理関数の使い分け早見表です。
| 関数 | キャッチするエラー | 対応バージョン | 使いどころ |
|---|---|---|---|
| IFERROR | 基本7種すべて | Excel 2007以降 | エラーを空白や代替値に置き換えたいとき |
| IFNA | #N/A のみ | Excel 2013以降 | 検索関数の「見つからない」だけを処理したいとき |
| ISERROR | 基本7種すべて(TRUE/FALSE) | 全バージョン | IF関数や条件付き書式と組み合わせたいとき |
| ISERR | #N/A 以外の6種(TRUE/FALSE) | 全バージョン | #N/A を正常値として残したいとき |
IFERROR — 全エラーを一括処理
IFERROR関数は、数式がエラーを返した場合に代替の値を表示する関数です。もっとも手軽で、実務で使用頻度が高い関数です。
=IFERROR(値, エラーの場合の値)
' 使用例:割り算のエラーを空白にする
=IFERROR(A1/B1, "")
' 使用例:VLOOKUPのエラーに代替テキスト
=IFERROR(VLOOKUP(A1, D:E, 2, FALSE), "未登録")
便利な関数ですが、すべてのエラーを一括でキャッチしてしまう点には注意が必要です。数式にバグがあっても気づけなくなるリスクがあるため、「なぜエラーが出るのか」を理解したうえで使いましょう。
IFNA — #N/Aだけを処理
IFNA関数は、#N/A エラーだけをキャッチする関数です。IF系関数の使い分けの中でも、検索関数とセットで使うのに最適です。
=IFNA(値, #N/Aの場合の値)
' 使用例:VLOOKUPの検索ミスだけを処理
=IFNA(VLOOKUP(A1, D:E, 2, FALSE), "該当なし")
IFERRORとの違いは、#N/A 以外のエラー(#REF! や #VALUE! など)はそのまま表示される点です。つまり、数式のバグに気づきやすくなります。検索関数の「見つからない」を処理したいだけなら、IFERRORよりもIFNAを選ぶのがおすすめです。
ISERROR / ISERR — IF関数と組み合わせた条件分岐
ISERROR関数とISERR関数は、セルがエラーかどうかをTRUE/FALSEで返す関数です。単体では使わず、IF関数や条件付き書式と組み合わせて使います。
' ISERROR:基本7種すべてを検出
=IF(ISERROR(A1/B1), "エラー", A1/B1)
' ISERR:#N/A以外の6種を検出
=IF(ISERR(A1/B1), "計算エラー", A1/B1)
条件付き書式のルール数式欄ではIFERROR関数が使えないため、エラーセルを色分けしたい場合にはISERROR関数が必須になります。
' 条件付き書式の数式例:エラーセルを赤くする
=ISERROR(A1)
ISERR関数は #N/A を検出しません。VLOOKUP等の検索結果で「見つからない」を正常扱いにしたい場面で活用できます。
まとめ
Excelのエラー値12種類の原因と対処法を一覧で解説しました。最後にポイントを整理します。
- 基本7種(
#DIV/0!・#VALUE!・#REF!・#NAME?・#N/A・#NUM!・#NULL!)は全バージョン共通。原因のほとんどは「引数の型ミス」「参照先の消失」「スペルミス」のいずれか ####はエラーではない。列幅を広げるだけで解決する- モダンエラー4種(
#SPILL!・#CALC!・#FIELD!・#GETTING_DATA)はMicrosoft 365 / Excel 2021以降で発生する - エラー処理にはIFNA > IFERRORの優先順位で検討する。IFNAなら数式バグを見逃しにくい
- 条件付き書式でエラーを判定するにはISERROR関数を使う
エラーの種類と原因を押さえておくと、トラブルが発生しても慌てず対処できます。この一覧表をブックマークしておいて、困ったときにすぐ確認してみてください。
