「セルに変なエラーが出て困った!」Excelを使っていると、計算式を入れたときに「#DIV/0!」や「#VALUE!」など、意味がよくわからないエラーが出ることがあります。
でも、エラーにはそれぞれ理由があり、原因を知れば対処はそれほど難しくありません。むしろ、エラーメッセージは「ここに問題がありますよ」と教えてくれる親切な機能なのです。
この記事では、Excelの代表的なエラーを一覧にまとめ、その意味や解決方法を初心者向けにやさしく解説します。エラーが出ても慌てずに、この記事を参考にして解決してみてください。
Excelエラーの基本知識

エラーとは何か
Excelのエラーは、計算式や関数が正しく動作できないときに表示される警告メッセージです。エラーが出ても、Excelが壊れたわけではありません。
エラーの種類
Excelのエラーは大きく2つに分かれます:
計算エラー
- 数式の計算で問題が発生
- #DIV/0!、#VALUE!、#NUM!など
参照エラー
- セルの参照で問題が発生
- #REF!、#NAME?、#N/Aなど
エラーの見つけ方
視覚的な確認
- セルに「#」から始まる文字が表示される
- セルの左上に緑の三角マークが出る場合もある
エラーチェック機能
- 「数式」タブ →「エラーチェック」
- 自動的にエラーのあるセルを検出
Excelの代表的なエラー一覧
#DIV/0!(ディバイド・バイ・ゼロ)
意味
0(ゼロ)で割り算をしたときに出るエラーです。数学的に0で割ることはできないため、このエラーが表示されます。
よくある原因
空白セルで割り算
=A1/B1
B1が空白の場合、Excelは空白を0として扱います。
計算結果が0になる場合
=A1/(B1-B1)
B1-B1は必ず0になります。
条件付き計算での見落とし
=SUM(A1:A10)/COUNT(A1:A10)
A1:A10にデータがない場合、COUNTは0を返します。
対処法
IF関数で事前チェック
=IF(B1=0,"計算不可",A1/B1)
IFERROR関数を使用
=IFERROR(A1/B1,"エラー")
より詳細なチェック
=IF(OR(B1=0,B1=""),"-",A1/B1)
実用例
売上単価の計算
=IF(B1=0,"売上なし",A1/B1)
売上数量(B1)が0の場合、「売上なし」と表示。
#VALUE!(バリュー)
意味
計算式で使えない文字や形式が入っているときに出るエラーです。数値として処理できないデータがあることを示します。
よくある原因
文字と数字の混在
=A1+B1
A1に「100円」、B1に「200」が入っている場合。
日付の形式エラー
=TODAY()-"2023/13/01"
13月は存在しないため、日付として認識されません。
関数の引数エラー
=MID("Hello","開始",3)
数値が必要な場所に文字が入っています。
対処法
VALUE関数で数値変換
=VALUE(LEFT(A1,LEN(A1)-1))
「100円」から「100」を抽出。
ISNUMBER関数で事前チェック
=IF(ISNUMBER(A1),A1,"数値エラー")
データの入力形式を統一
- 数値は数値として入力
- 文字は文字として入力
- 混在を避ける
実用例
金額計算での対処
=IF(ISNUMBER(A1)*ISNUMBER(B1),A1+B1,"入力エラー")
#REF!(リファレンス)
意味
参照しているセルが無効になったときに出るエラーです。元々参照していたセルが削除されたり、移動されたりした場合に発生します。
よくある原因
行や列の削除
=SUM(A1:A10)
A列を削除すると、この数式は#REF!になります。
シートの削除
=Sheet2!A1
Sheet2を削除すると、この参照はエラーになります。
範囲の変更
=VLOOKUP(A1,B1:D10,5,FALSE)
5列目が存在しない場合。
対処法
元に戻す操作
Ctrl+Z
削除直後なら、元に戻すで解決できます。
参照先の再設定
=SUM(B1:B10)
正しいセル範囲に修正します。
絶対参照の活用
=$A$1:$A$10
絶対参照にしておくと、行列の挿入時にエラーが出にくくなります。
実用例
安全な範囲指定
=SUM(OFFSET(A1,0,0,COUNT(A:A),1))
データの量に応じて自動的に範囲を調整。
#NAME?(ネーム)
意味
Excelが認識できない名前が数式に入っているときに出るエラーです。関数名の間違いや、定義されていない名前の使用が原因です。
よくある原因
関数名のスペルミス
=SUUM(A1:A10)
正しくは「SUM」です。
全角文字の使用
=SUM(A1:A10)
関数名は半角英字で入力する必要があります。
未定義の名前の使用
=売上合計
「売上合計」という名前が定義されていない場合。
対処法
関数名の確認
- スペルチェック
- 関数の候補から選択
- F3キーで関数一覧を表示
名前の管理
数式タブ → 名前の管理
定義済みの名前を確認できます。
オートコンプリート機能の活用 関数名を入力すると、候補が表示されます。
実用例
正しい関数の使用
=SUM(A1:A10) ← 正しい
=SUMI(A1:A10) ← 間違い
#N/A(ノット・アベイラブル)
意味
データが見つからないときに出るエラーです。主に検索系の関数(VLOOKUP、MATCH、INDEXなど)で、該当するデータが存在しない場合に発生します。
よくある原因
VLOOKUP関数でのデータ不一致
=VLOOKUP("商品A",B1:D10,2,FALSE)
「商品A」が範囲B1:D10に存在しない場合。
MATCH関数での検索失敗
=MATCH("田中",A1:A100,0)
「田中」がA1:A100の範囲にない場合。
データの形式違い
- 「100」と「 100」(スペースの有無)
- 「A」と「a」(全角と半角)
対処法
IFERROR関数での処理
=IFERROR(VLOOKUP(A1,B1:D10,2,FALSE),"見つかりません")
IFNA関数での処理
=IFNA(VLOOKUP(A1,B1:D10,2,FALSE),"データなし")
データの確認と統一
- 半角・全角の統一
- 前後スペースの除去
- 大文字・小文字の統一
実用例
顧客名検索
=IFERROR(VLOOKUP(A1,顧客マスタ,2,FALSE),"新規顧客")
#NUM!(ナンバー)
意味
数値の計算結果が大きすぎる・小さすぎる、または計算が数学的に成立しないときに出るエラーです。
よくある原因
負の数の平方根
=SQRT(-1)
負の数の平方根は計算できません。
計算結果が巨大
=POWER(10,1000)
結果が大きすぎてExcelで表現できない場合。
収束しない関数
=IRR({-100,50,50})
IRR関数が解を見つけられない場合。
対処法
条件チェック
=IF(A1>=0,SQRT(A1),"負の数です")
適切な範囲での計算
=MIN(POWER(A1,B1),999999999)
代替計算方法
=LOG(A1)*B1 # POWER(A1,B1)の代替
実用例
金利計算での対処
=IF(ISERROR(IRR(A1:A10)),"計算不可",IRR(A1:A10))
##### (ハッシュマーク)
意味
セル幅が足りなくて表示できないときに出る表示です。厳密にはエラーではなく、「データはあるけど表示できない」状態を示します。
よくある原因
列幅が狭い
- 計算結果が長い数値
- 日付の表示形式が長い
- 文字列が長い
表示形式の問題
=TODAY()
日付の表示形式によっては幅が足りなくなります。
対処法
列幅の調整
- 列境界をダブルクリックで自動調整
- 手動でドラッグして幅を広げる
表示形式の変更
yyyy/mm/dd → yy/mm/dd
セルの結合 隣接するセルと結合して幅を確保。
実用例
自動調整マクロ
Columns.AutoFit
エラーの予防方法

データ入力時の注意点
一貫性のある入力
数値データ
- 数値は数値として入力
- 単位は別のセルに記載
- 桁区切りの統一
文字データ
- 全角・半角の統一
- 大文字・小文字の統一
- 前後スペースの除去
入力規則の設定
数値の範囲制限
データ → データの入力規則 → 整数
リストからの選択
データ → データの入力規則 → リスト
数式作成時の注意点
エラーハンドリング
IFERROR関数の活用
=IFERROR(計算式,"エラー時の表示")
条件分岐の徹底
=IF(条件,真の場合,偽の場合)
参照の工夫
絶対参照の活用
=$A$1 # 絶対参照
=A$1 # 行のみ固定
=$A1 # 列のみ固定
名前定義の活用
=SUM(売上データ)
エラーの一括処理方法
検索・置換での処理
エラーの一括削除
- Ctrl+Hで検索・置換ダイアログを開く
- 検索する文字列:
#N/A
- 置換後の文字列:(空白)
- すべて置換をクリック
エラーの一括変換
検索:#DIV/0!
置換:0
関数での一括処理
複数エラーの処理
=IFERROR(IFERROR(VLOOKUP(...),0),"-")
条件付き処理
=IF(ISERROR(A1),"エラー",A1)
上級者向けエラー対策
配列数式でのエラー処理
エラーを除外した合計
=SUM(IF(ISERROR(A1:A10),0,A1:A10))
エラーを除外した平均
=AVERAGE(IF(NOT(ISERROR(A1:A10)),A1:A10))
VBAでのエラー処理
エラーチェック関数
Function CheckErrors(rng As Range) As String
Dim cell As Range
Dim errorList As String
For Each cell In rng
If IsError(cell.Value) Then
errorList = errorList & cell.Address & ": " & cell.Text & vbCrLf
End If
Next cell
CheckErrors = errorList
End Function
トラブルシューティング

よくある質問と回答
Q: エラーが複数のセルに一度に出た
A: 原因の特定
- 参照元のデータを確認
- 数式の構文をチェック
- 名前定義の確認
Q: エラーは出ないが計算結果がおかしい
A: 検証方法
- 手計算で結果を確認
- 数式の論理をチェック
- データ型の確認
Q: エラーが消えない
A: 対処手順
- セルをクリアして再入力
- 別のセルで同じ計算を試す
- Excelの再起動
デバッグのコツ
段階的な確認
- データの確認:入力値が正しいか
- 数式の確認:構文が正しいか
- 参照の確認:参照先が存在するか
- 関数の確認:関数名が正しいか
数式の分解
複雑な数式は部分ごとに分けて確認:
=VLOOKUP(A1,B1:D10,2,FALSE)
- A1の値を確認
- B1:D10の範囲を確認
- 2列目が存在するか確認
- 完全一致検索が適切か確認
まとめ
Excelのエラー表示は一見わかりづらいですが、原因と対処法が分かれば落ち着いて対応できます。
エラー対策の基本
予防が最重要
- データ入力時の統一ルール
- 数式作成時のエラーハンドリング
- 定期的なデータ検証
発生時の対応
- エラーの種類を特定
- 原因を段階的に調査
- 適切な対処法を適用
主要エラーの対処法まとめ
エラー | 主な原因 | 基本対処法 |
---|---|---|
#DIV/0! | ゼロ除算 | IF関数で事前チェック |
#VALUE! | データ型不一致 | VALUE関数で変換 |
#REF! | 参照先不存在 | 参照先を再設定 |
#NAME? | 名前認識エラー | スペルチェック |
#N/A | データ不存在 | IFERROR関数で処理 |
#NUM! | 数値計算エラー | 計算条件を確認 |
##### | 表示幅不足 | 列幅を調整 |
効率的な作業のために
エラーハンドリング関数の活用
- IFERROR:すべてのエラーを処理
- IFNA:#N/Aエラーのみ処理
- IF + ISERROR:条件付きエラー処理
データ品質の向上
- 入力規則の設定
- データ検証の実施
- 定期的なエラーチェック
コメント