Excelで数式を入れたら、セルに「#N/A」や「#VALUE!」のような見慣れない表示が出てしまった…という経験はありませんか。
- ・「#」で始まるエラーが出たけど、何が悪いのか分からない
- ・エラーの種類が多すぎて、どれがどれだか覚えられない
- ・エラーが混ざった表を、とりあえず合計したい
エラーの表示は、Excelが「この数式のここがおかしいよ」と教えてくれる合図です。種類ごとに原因がほぼ決まっているので、表示を見れば、どこを直せばいいかの見当がつきます。この記事では、よく出る9種類のエラーの意味と直し方を一覧でまとめます。
エラーの種類と意味の早見表
| 表示 | ひとことで言うと | まず確認するところ |
|---|---|---|
| #DIV/0! | 0(または空白)で割り算している | 分母となるセル |
| #N/A | 探している値が見つからない | VLOOKUP・XLOOKUPなどの検索値 |
| #VALUE! | 計算できない種類のデータが混ざっている | 文字・スペースの入ったセル |
| #REF! | 参照先のセルがなくなった | 削除した行・列 |
| #NAME? | Excelが知らない言葉が数式にある | 関数名のつづり・「”」の付け忘れ |
| #NUM! | 数値がおかしい・大きすぎる | 引数の数値 |
| #NULL! | 2つの範囲に重なりがない | 範囲の区切り(「,」と「:」) |
| #SPILL! | 結果を広げる先にデータがある | 数式の下や右のセル |
| ##### | 列の幅が足りない | 列の幅・マイナスの日付 |
エラーごとの原因と直し方
#DIV/0!:0や空白のセルで割っている
数値を0で割ったとき、または空白のセルで割ったときに出ます。前年比や達成率の表で、分母のデータがまだ入っていない行などで起きることがあります。分母のセルを確認し、データがまだない行は、次のようにIF関数で「分母が空白・0なら空欄にする」と書いておくと表示されなくなります。
=IF([分母],[分子]/[分母],"")#N/A:探している値が見つからない
VLOOKUPやXLOOKUPなどの検索で、探している値が見つからないときに出ます。まずは検索値が本当に元の表にあるかを確かめましょう。見た目は同じなのに見つからない場合は、次の2つが考えられます。
- 数値と文字列が食い違っている:片方が数値、もう片方が文字列として入っていると一致しません。データの種類をそろえます。
- 前後に余分なスペースがある:TRIM関数で前後のスペースを取り除いてから検索します。
検索の関数の使い方はXLOOKUPとVLOOKUPの違いと使い方で紹介しています。
#VALUE!:計算できないデータが混ざっている
足し算・かけ算をしようとしたセルに、文字や目に見えないスペースが入っていると出ます。数値に見えても、実は文字として入っている日付が原因のこともあります。
「=A2+B2+C2」のように「+」でつないでいる場合は、=SUM(A2:C2)のように関数に置き換えると、文字の入ったセルを飛ばして計算できることがあります。うまくいかないときは、参照しているセルにスペースや文字が入っていないかを確かめましょう。
#REF!:参照先のセルがなくなった
数式が参照していた行や列を削除したときに出ます。削除した直後なら、「Ctrl」+「Z」ですぐに元に戻せます。ほかに、次のような場合にも出ます。
- VLOOKUPの「列番号」が、検索範囲の列数より大きい
- INDIRECT関数で、閉じているブックを参照している(INDIRECT関数の使い方)
「=SUM(B2,C2,D2)」のように1つずつ指定するより、=SUM(B2:D2)のように範囲で指定しておくと、途中の列を削除しても数式が自動で調整されるので、このエラーを防げます。
#NAME?:Excelが知らない言葉が数式にある
数式の中に、Excelが理解できない言葉があるときに出ます。よくある原因は次の4つです。
- 関数名のつづり間違い(例:SUMをSUNと入力)
- 文字列を「”」(ダブルクォーテーション)で囲んでいない
- 名前の定義で付けていない名前を使っている
- 範囲の「:」(コロン)が抜けている(例:B2B12)
関数名を入力するときは、入力の途中で出てくる候補から選ぶと、つづり間違いを防げます。ChatGPTなどのAIに作ってもらった数式でこのエラーが出るときは、ChatGPTに作ってもらったExcel関数がエラーになる原因と直し方もあわせて確認してみてください。
#NUM!:数値がおかしい・大きすぎる
関数に渡した数値が正しくないとき、または計算結果がExcelで扱える範囲を超えるほど大きい・小さいときに出ます。「$1,000」のように記号付きで数値を入力していると起きることがあるので、引数には「1000」のように数字だけを入れましょう。
#NULL!:2つの範囲に重なりがない
Excelでは、2つの範囲の間にスペースを入れると「重なっている部分」という意味になります。重なりがない範囲をスペースでつなぐと、このエラーになります。範囲を並べて指定したいときは「,」(カンマ)で区切りましょう。
=SUM(C2:C3,E4:E6)#SPILL!:結果を広げる先にデータがある
UNIQUE関数やSORT関数など、結果を複数のセルに広げる(スピルする)数式で、広げる先のセルにデータが入っていると出ます。エラーのセルを選ぶと、結果が広がる予定の範囲が点線で表示されるので、その中のデータを削除するか別の場所に移しましょう。結合されたセルやテーブルの中でも、このエラーになることがあります。
#####:列の幅が足りない
エラーというより、列の幅が狭くて中身を表示しきれていない状態です。列見出しの右の境界線をダブルクリックすると、列の幅が中身に合わせて自動で広がります。広げても消えないときは、マイナスの日付や時刻になっていないかを確認しましょう。
エラーとうまく付き合うための3つの方法
IFERROR関数でエラーの代わりに別の表示にする
エラーになったときだけ、代わりに「0」や空欄を表示させたいときはIFERROR関数を使います。
=IFERROR([元の数式],"")ただし、IFERROR関数はどんな種類のエラーもまとめて隠してしまうので、本当は直すべき間違いまで見えなくなります。まず原因を確かめて、数式が正しく動いていると分かったうえで使いましょう。
エラーが混ざった範囲を合計するならAGGREGATE関数
エラーが1つでも入っている範囲をSUM関数で合計すると、結果もエラーになります。エラーを飛ばして合計したいときは、AGGREGATE関数が使えます。1つ目の「9」が「合計」、2つ目の「6」が「エラー値を無視する」という意味です。
=AGGREGATE(9,6,[合計したい範囲])こちらも、エラーを「無視している」だけで直しているわけではありません。合計に入るはずの数値が抜けていないか、エラーの原因は別に確認しておきましょう。
「数式の検証」でどこがおかしいかを1ステップずつ確かめる
長い数式のどこでエラーが起きているのか分からないときは、「数式の検証」が便利です(Windows版のExcel)。エラーのセルを選び、「数式」タブの「数式の検証」を押すと、数式を少しずつ計算した途中の結果を確認できます。

この例では、達成率の数式「=B2/C2」が#VALUE!になっています。検証してみると、途中の計算が「”80″/””」と表示され、売上(B2)の80も、空白に見える目標(C2)も、数値ではなく文字として入っていることが分かります。このように、見た目では分からない原因を見つけられるのが「数式の検証」の便利なところです。
エラー表示が出ないのにおかしいときは
「#」のエラーは出ないのに、数式が思ったとおりに動かないこともあります。よくある症状は、個別の記事で詳しく解説しています。
数式が計算されず、そのまま文字で表示される

元のデータを変えても、計算結果が変わらない

別のシートの内容が反映されない

まとめ
- 「#」のエラーは、Excelが数式のおかしいところを教えてくれる合図。種類で原因の見当がつく
- よく出るのは、#DIV/0!(0で割った)・#N/A(見つからない)・#VALUE!(文字が混ざっている)・#REF!(参照先が消えた)・#NAME?(つづり間違い)
- #####はエラーではなく、列の幅が足りないだけ
- IFERROR関数やAGGREGATE関数はエラーを「隠す・飛ばす」もの。先に原因を確かめてから使う
- どこがおかしいか分からないときは「数式の検証」で1ステップずつ確かめる
