目的別
スプレッドシートのエラー一覧
数式にエラーが出たとき、エラーの種類が原因をほぼ特定してくれます。
このページでは7種類のエラーについて、原因と直し方を順に整理します。まず出ているエラーの種類を確認してから、該当する項目を読んでください。

よく出る3つは、それぞれ専用の解説を用意しています。原因も直し方も別物なので、種類が分かっているならそちらが早いです。
- #N/Aエラーの直し方(探した値が見つからない)
- #REF!エラーの直し方(参照先が消えた)
- #VALUE!エラーの直し方(値の種類が合わない)
このページの中身(23項目)
エラー種別の早見表
| エラー | 一言で言うと | 主な原因 |
|---|---|---|
#N/A | 見つからなかった | 検索キーが存在しない |
#REF! | 参照が壊れた | 行列の削除、範囲外の指定 |
#VALUE! | 型が違う | 数値のところに文字列 |
#DIV/0! | 0で割った | 分母が空欄か0 |
#NAME? | 名前が分からない | 関数名の綴り違い |
#NUM! | 数値がおかしい | 計算範囲外、引数の矛盾 |
#ERROR! | 数式の書き方が不正 | 括弧やカンマの誤り |
#N/A ── 見つからなかった
VLOOKUP や MATCH などの検索系で出ます。「探したけれど無かった」という意味で、数式自体は正しく動いています。
原因1:本当に存在しない
マスタに登録されていないデータです。これは数式の問題ではなくデータの問題なので、エラーを消すのではなくマスタを直してください。
原因2:余分なスペース
"B-201 " と "B-201" は別物です。見た目では分かりません。
=LEN(A2)
で文字数を確認すると判別できます。TRIM で整えてください。
=VLOOKUP(TRIM(A2), マスタ!A:B, 2, FALSE)
原因3:数値と文字列の食い違い
101(数値)と "101"(文字列)は一致しません。セルが左寄せなら文字列です。
原因4:全角と半角
"ABC" と "ABC" は別物です。ASC で半角に統一できます。
原因5:検索範囲が左端にない
VLOOKUP は範囲の左端列しか検索しません。 右から左へは探せません。XLOOKUP か INDEX+MATCH を使ってください。
対処
原因を特定したうえで、見つからないことが正常なら包みます。
=IFNA(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "未登録")
IFERROR より IFNA を推奨します。 IFERRORは #REF! や #NAME? まで隠してしまい、本当の不具合に気づけなくなります。

#REF! ── 参照が壊れた
最も危険なエラーです。 参照先が失われています。
原因1:参照していた行や列を削除した
数式が指していたセルが消えました。元に戻すには、削除を取り消すしかありません。 定期的にバージョン履歴を確認する習慣が効きます。
原因2:列番号が範囲を超えている
=VLOOKUP(A2, A:C, 4, FALSE)
範囲が3列なのに4列目を指定しています。
原因3:結果の展開先にデータがある
FILTER SORT UNIQUE SPLIT ARRAYFORMULA など、複数セルに結果を返す関数で頻出します。
数式の下や右に何か入力されていないか確認してください。これが分かれば一瞬で直せます。
原因4:IMPORTRANGEのアクセス未許可
IMPORTRANGE を入れた直後は #REF! になります。セルにカーソルを合わせて「アクセスを許可」を押してください。
原因5:循環参照
自分自身を参照しています。=SUM(A:A) をA列に書いた場合などです。列全体を指定するときは、数式を別の列に置いてください。
#VALUE! ── 型が違う
数値を期待している場所に文字列が入っています。
原因1:数値が文字列になっている
CSVや他システムからのコピーで頻出します。セルが左寄せなら文字列です。
=COUNT(A2:A100)
COUNT が行数より少なければ、文字列が混ざっています。
原因2:範囲の大きさが揃っていない
FILTER や SUMIFS で、条件範囲と対象範囲の行数が違うと出ます。すべて同じ行数に揃えるか、列全体で統一してください。
原因3:日付が文字列になっている
DATEVALUE で変換してください。
原因4:引数の型が間違っている
MID の開始位置に0以下、OFFSET の高さに0以下を指定した場合など。
#DIV/0! ── 0で割った
分母が0か空欄です。
対処
計算できないことが正常なら包みます。
=IFERROR(A2/B2, "")
0 ではなく "" を返してください
0を返すと、後で AVERAGE を取ったときに平均が下がります。
AVERAGEIF で出る場合は、条件に合う行が1件もないという意味です。条件のスペースや全角半角を確認してください。
#NAME? ── 名前が分からない
原因1:関数名の綴り違い
VLOOKUP を VLOOKUPP と書いた、など。
原因2:その環境に無い関数
Excel 2019以前で XLOOKUP や FILTER を使った場合。
逆に、QUERY SPLIT FLATTEN ARRAYFORMULA REGEXEXTRACT はスプレッドシート専用で、Excelでは動きません。
原因3:文字列をクォートで囲んでいない
=VLOOKUP(東京, A:B, 2, FALSE) ← 誤り
=VLOOKUP("東京", A:B, 2, FALSE) ← 正しい
原因4:名前付き範囲が存在しない
範囲名の綴りを確認してください。
#NUM! ── 数値がおかしい
原因1:引数の順番が逆
DATEDIF で開始日が終了日より後になっている、など。
原因2:計算結果が扱える範囲を超えた
極端に大きい数、負の数の平方根など。
原因3:日付の範囲外
EOMONTH に極端な月数を渡した場合など。
#ERROR! ── 数式の書き方が不正
スプレッドシート特有のエラーです。Excelでは入力時に弾かれるものが、ここでは #ERROR! になります。
原因1:括弧の数が合っていない
長い数式でよく起きます。数式バーで括弧の対応が色分けされるので確認してください。
原因2:カンマの数が合っていない
IFS で条件と値がペアになっていない、など。
原因3:クォートで囲むべき引数を囲んでいない
IMPORTRANGE の第2引数、QUERY のクエリ文で頻出します。
=IMPORTRANGE("キー", 売上!A1:D100) ← 誤り
=IMPORTRANGE("キー", "売上!A1:D100") ← 正しい
エラーを消す前に確認すること
IFERRORで全部包む前に、必ず一度は原因を確認してください。
IFERROR はすべての種類のエラーを区別なく置き換えます。「見つからなかっただけの #N/A」も「参照が壊れた #REF!」も、同じ値に化けます。
結果として、本当は取得できるはずのデータが黙って消えている状態になります。数字は出るのに間違っている、という最も気づきにくい不具合です。
手順:
- まずIFERROR無しで数式を書く
- 出たエラーの種類を確認する
- 原因を特定して潰す
- 想定内のエラーだけを包む
包むときも、可能なら範囲を絞ってください。
#N/AだけならIFNA- 検索なら XLOOKUP の第4引数
エラーの件数を監視する
エラーを隠す代わりに、件数を数えて見えるようにするという方法もあります。
=COUNTIF(C2:C1000, "#N/A")
マスタ未登録の件数が分かるので、データの不備に気づけます。隠すより数えるほうが運用しやすい場面は多くあります。
エラーは故障ではなく報告である
表計算のエラー表示を「壊れた」と受け取る人は多いのですが、実際には逆です。エラーは、指示どおりに処理しようとしたができなかった、という報告です。何ができなかったのかを種類で伝えてくれているので、種類さえ読めれば原因はかなり絞れます。
厄介なのは、エラーを消す方法だけが広く知られていることです。エラーを別の値に置き換える関数を使えば、表示は消えます。しかし原因は残ったままです。検索が見つかっていない、参照先が消えている、割る数がゼロになっている。こうした状態が続いたまま、表面上は正常に見える表ができあがります。
実際の事故はこう起こります。マスタから値を引く数式にエラー回避を仕込んでおり、見つからないときは空欄が出るようにしていた。ある日マスタの構造が変わって参照がずれたが、空欄になるだけなので誰も気づかない。数か月後に集計が合わないことが発覚したとき、いつから間違っていたのか追えなくなっている。
したがって、エラーを見つけたときの正しい順番はこうです。まず種類を読む。次に原因を特定する。原因を直す。正しく動くことを確認する。そのうえで、業務上どうしても表示させたくないものだけを隠す。この順番を守るだけで、ファイルの信頼性はまったく変わります。
種類ごとの読み方
該当なしを意味するエラーは、検索系の関数が返します。探したが見つからなかった、という報告です。数式そのものは正常に動いています。原因は、検索値と検索範囲の型が違う、前後に空白が入っている、範囲がずれている、のいずれかがほとんどです。
参照が無効というエラーは、参照先が存在しないときに出ます。行や列を削除した、範囲の外を指定した、シートを消した。構造が壊れているので、必ず原因を直してください。これを隠すのは危険です。
値が不適切というエラーは、型が合わないときに出ます。文字列を数値として計算しようとした、日付として解釈できない文字列を渡した、といった場合です。元データの型を確認してください。
名前が不明というエラーは、関数名の綴り違いか、定義していない名前を参照しています。単純なミスなので、綴りを確認すれば解決します。
ゼロで割ったというエラーは、分母がゼロか空欄です。入力待ちであれば想定内なので、先に空欄かどうかを判定する形に書き換えるのが適切です。
数値が不正というエラーは、計算結果が扱える範囲を超えたときに出ます。負の数の平方根を求めようとした、といった場合です。
範囲が重なっていないというエラーは、範囲の指定方法に誤りがあります。
これらを見分けられるだけで、対処の当たりがつくようになります。
見えない文字が原因のとき
エラーの原因として頻度が高い割に、もっとも気づきにくいのが、見えない文字の混入です。
前後の半角スペースは、人の目にはまったく分かりません。「東京」と「東京 」は別の値ですが、画面上では同じに見えます。他のシステムから出力したデータ、メールから貼り付けた文字列、フォームの回答。こうした経路で入ってきたデータには高い確率で混ざっています。
改行の混入も同様です。セルの中に改行が入っていると、比較も検索も一致しなくなります。セルの高さが不自然に高い場合は疑ってください。
全角と半角の違いも見分けにくい原因です。数字やアルファベットが全角で入っていると、半角の値とは一致しません。
対処としては、取り込んだ直後に整形する作業列を用意するのが確実です。前後の空白を落とす、改行を除く、全角を半角に揃える。この三つを通した列を作り、以降はそちらを参照するようにします。数式の中で毎回処理するより、保守がはるかに楽になります。
原因の切り分けには、文字数を数える方法が有効です。想定より多ければ、余計な文字が入っています。
エラーを一括で見つける
シートが大きくなると、どこにエラーがあるのか探すだけで時間がかかります。効率的な方法がいくつかあります。
エラーの件数を数える数式を、シートの端に置いておく方法があります。件数が変わったときだけ調べればよくなるので、日常的な監視が楽になります。
条件付き書式でエラーのセルに色を付ける方法もあります。目立たせておけば、シートを見た瞬間に分かります。エラーを隠すのではなく目立たせる、という発想です。
ジャンプ機能を使って、数式を含むセルやエラーを含むセルだけを選択することもできます。シート全体を目で追う必要がなくなります。
大きなファイルを引き継いだときは、まずこの三つでエラーの分布を把握してから中身を読むと、構造の理解が早くなります。
「目的別」の関数を全体から見る
やりたいことから関数を選ぶための記事です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに52本あります。
このカテゴリで共通するつまずき
関数名から探すより、条件から絞るほうが早く決まります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
出したい結果を一文で書けば、関数はほぼ1つに決まります。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
先に決めておけば、書くのは数分で終わります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
関数名から探すより、条件から絞るほうが早く決まります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
出したい結果を一文で書けば、関数はほぼ1つに決まります。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
うまくいかないときに見る場所は、ほぼ決まっています。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
収録は201本です。カテゴリごとの内訳を出しておきます。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 ←この記事 |
| 集計 | 47本 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. エラーを全部消す方法はありますか
エラー回避の関数で包めば表示は消えますが、原因は残ります。原因を確かめてから隠してください。
Q. 印刷のときだけエラーを消せますか
ページ設定で、エラー値の印刷方法を指定できます。数式を変えずに印刷結果だけ空欄にできます。
Q. 該当なしのエラーだけを隠したいのですが
該当なし専用の回避関数があります。他の種類のエラーはそのまま表示されるので、想定外の異常に気づけます。
Q. 循環参照と言われます
数式が自分自身を参照しています。合計欄を範囲に含めていないか確認してください。
Q. 緑の三角が出ますが、エラーではないようです
数式の書き方に対する警告表示です。実害がないことも多いのですが、範囲の指定漏れを教えてくれている場合もあるので、一度は内容を確認してください。
Q. 数式が文字列として表示されます
セルの表示形式が文字列になっているか、先頭にアポストロフィが入っています。表示形式を標準に戻してから入力し直してください。
Q. 他のシートを参照するとエラーになります
シート名に空白や記号が含まれる場合、シングルクォートで囲む必要があります。
Q. 外部ファイルの参照がエラーになります
アクセス権限が必要な場合があります。スプレッドシートでは、最初に一度だけ許可の操作が必要です。
この分野の他の記事
同じ「目的別」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。
まとめ
- エラーの種類が原因をほぼ特定する。まず種類を確認する
#N/Aは「見つからない」。スペース・型・全角半角を疑う#REF!は最も危険。複数セルを返す関数では展開先を確認#VALUE!は型違いか、範囲の行数のずれ#ERROR!はスプレッドシート特有。括弧・カンマ・クォートを確認- 原因を特定する前にIFERRORで包まない