- はじめに:エラーは敵じゃない、友達だ!
- 9種類のエラーたちに会いに行こう!
- 1. #NULL! (ERROR.TYPE: 1) – 「どこを見ればいいの?」
- 2. #DIV/0! (ERROR.TYPE: 2) – 「0では割れません!」
- 3. #VALUE! (ERROR.TYPE: 3) – 「計算できない組み合わせだよ!」
- 4. #REF! (ERROR.TYPE: 4) – 「見ていた場所が消えちゃった!」
- 5. #NAME? (ERROR.TYPE: 5) – 「その名前、知らないんだけど…」
- 6. #NUM! (ERROR.TYPE: 6) – 「その計算、数学的に無理!」
- 7. #N/A (ERROR.TYPE: 7) – 「探したけど、見つからないよ」
- 8. #スピル! (ERROR.TYPE: 9) – 「結果を書きたいのに、場所がない!」
- 9. #CALC! (ERROR.TYPE: 14) – 「計算、うまくいきませんでした…」
- エラーの小話
- まとめ:エラーは、Excelからのメッセージだ!
はじめに:エラーは敵じゃない、友達だ!
数式を入力してEnterキーを押した瞬間、目に飛び込んでくる「#N/A」や「#VALUE!」といったエラーメッセージ…。
「うわ、また出た…」「何が間違ってるのか全然わからない…」
そんなふうに、Excelのエラーに苦手意識を持っている方も多いのではないでしょうか?
でも、ちょっと待ってください!
もし、そのエラーたちが、私たちに何か大切なことを教えてくれる「友達」だとしたら?
「え、エラーと友達に?どうやって?」
答えは簡単。自らの手で、意図的にエラーを呼び出してみるのです!
今回の記事は、Excelのエラーを避けるのではなく、あえて「エラー値を出す!」という、逆転の発想の冒険です。
エラーがどんな時に、なぜ発生するのかを自ら体験することで、その本質を深く理解し、いざという時に慌てず対処できるスキルを身につけることが目的です。
この冒険の羅針盤となるのが、ERROR.TYPE関数。
この関数が返すエラー番号に沿って、9種類のエラーたちに会いに行きましょう!
さあ、エラーへの恐怖心を、知的好奇心へと変える旅の始まりです!
本記事では、無料のWeb版Excelを使用して検証および画像の作成を行っています。Windowsはもちろん、MacやLinuxの方もブラウザさえあれば挑戦できます!
9種類のエラーたちに会いに行こう!
まっさらなシートを用意してください。これから紹介する数式をセルに入力するだけで、エラーたちが姿を現してくれますよ。
1. #NULL! (ERROR.TYPE: 1) – 「どこを見ればいいの?」
どんな時に出る?
#NULL! エラーは、Excelが「指定された複数の範囲が、交わっていませんよ!」と教えてくれているサインです。
数式の中で、範囲と範囲を半角スペースで区切ると、Excelはその「交差部分」を参照しようとします。
この半角スペースは「交差演算子」という、れっきとした演算子なのです。
呼び出しの数式
=A1 A2

A1セルとA2セルは、隣り合ってはいますが、交わってはいません。
そのため、「交差範囲がないよ!」とExcelが#NULL!エラーで教えてくれます。
【深掘り】交差演算子の使い道は?
この交差演算子、実務で見る機会はほぼありません。しかし、名前の定義と組み合わせると、擬似的にINDEX&MATCHのような動きを再現できます。
例えば、A2:A5に行名(商品名など)、B1:D1に列名(月など)を定義し、=_2月 カレー
のように入力すると、2つの範囲が交差するC3セルの値をピンポイントで抜き出せます。非常に古い機能ですが、Excelの歴史を感じられる面白い挙動ですね。

2. #DIV/0! (ERROR.TYPE: 2) – 「0では割れません!」
どんな時に出る?
これは最も分かりやすいエラーの一つですね。
その名の通り、「0で割り算をしようとしていますよ!」という、算数の基本ルールに関するエラーです。
「そもそも、なぜ0で割ってはいけないの?」
数学的にざっくり言うと、「1の中に0は無限個ある」ため、答えが特定できないからです。
「1から0を何回引けば0になりますか?」と聞かれても、「永遠に引けます」としか答えられないですよね。そのため、計算不能としてエラーになるのです。
呼び出しの数式
=1/0
数字の「1」を「0」で割る。これ以上ないほどシンプルな、#DIV/0!エラーの呼び出し方です。
【他の例】
空のセルや「0」が入力されているセルを参照して割り算をした場合にも発生します。
例えば、A1セルが空の状態で =100/A1 と入力すると、同じ#DIV/0!エラーが出ます。

3. #VALUE! (ERROR.TYPE: 3) – 「計算できない組み合わせだよ!」
どんな時に出る?
#VALUE! エラーは、「計算しようとしているデータの種類(型)が間違っていますよ!」というサインです。
例えば、数値に文字列を足そうとするなど、本来できない計算を実行しようとした時に発生します。
呼び出しの数式
=1+"i"
数値の「1」に、文字列の「i」を足し算しようとしています。
Excelも「数値と文字は足せないよ!」と困って、#VALUE!エラーを返します。

【他の例】
日付や時刻を扱う関数に、日付として解釈できない文字列を渡した場合にも発生します。
例えば、=DATEVALUE("暇つぶし") と入力すると、同じ#VALUE!エラーが出ます。

4. #REF! (ERROR.TYPE: 4) – 「見ていた場所が消えちゃった!」
どんな時に出る?
#REF!(リファレンスエラー)は、「数式が参照していたセルや範囲が、なくなってしまいましたよ!」という悲しいお知らせです。
参照先のセルや行、列を削除してしまった場合などに発生します。
呼び出しの数式
=OFFSET(A1,-1,0)
このOFFSET関数は、A1セルを基準に「-1行上、0列右」のセルを参照しなさい、という命令です。
しかし、1行目より上にはセルが存在しないため、「そんな場所はないよ!」と#REF!エラーになります。

【他の例(実務あるある)】
A1セルに「1」、A2セルに =A1+1 と入力し、A2の数式を下までコピーして連番を作ったとします。
その途中の行(例えば3行目)を削除してみてください。
4行目にあった数式は =#REF!+1 となり、参照先を失ってしまいます。これは実務で非常によく遭遇するパターンですね。

5. #NAME? (ERROR.TYPE: 5) – 「その名前、知らないんだけど…」
どんな時に出る?
#NAME? エラーは、「数式に含まれる文字列を、Excelが関数名としても、名前付き範囲としても認識できません!」というサインです。
関数名をタイプミスしたり、存在しない名前を使おうとしたりした時に発生します。
呼び出しの数式
=あ
「あ」という名前の関数も、名前付き範囲も(おそらく)定義されていないため、Excelは「『あ』って何のこと?」と困って、#NAME?エラーを返します。

【他の例】
単純なタイプミスが最も多い原因です。
例えば、=SUMM(A1:A5) のようにSUM関数を間違えたり、Googleスプレッドシートには存在する=FLATTEN(A1:B5)のような関数をExcelで使おうとしたりしても、同じ#NAME?エラーが発生します。

6. #NUM! (ERROR.TYPE: 6) – 「その計算、数学的に無理!」
どんな時に出る?
#NUM! エラーは、「数式に含まれる数値が、関数の引数として不適切ですよ!」という、数学的なルールに関するエラーです。
例えば、負の数の平方根を求めようとするなど、数学的に不可能な計算で発生します。
呼び出しの数式
=-1^(1/2)
これは、「-1」の「1/2乗」、つまり「-1の平方根(√-1)」を計算しようとしています。
実数の範囲では計算できないため、「それは無理だよ!」とExcelが#NUM!エラーで教えてくれます。

【豆知識】どうしてもこの計算がしたい場合は、複素数を扱う=IMSQRT(-1)という関数を使えば、「i」という答え(虚数単位)を正しく返してくれますよ!

【他の例】=DATEDIF("2025/1/1","2024/1/1","Y") のように、DATEDIF関数で終了日が開始日より前になっている場合も、期間を正しく計算できず#NUM!エラーが発生します。

7. #N/A (ERROR.TYPE: 7) – 「探したけど、見つからないよ」
どんな時に出る?
#N/A (Not Available) は、VLOOKUPやMATCHなどの検索/照合関数で、「探している値が見つかりませんでした」という、最も一般的な検索エラーです。
「#REF!と#N/Aの違いが、いまいちわからない…」
いい質問ですね!Excelの気持ちになってみましょう。
#REF!: 「君が『見てこい』と言った場所自体が、爆破されて更地になっちゃったよ!」
#N/A: 「言われた場所には行ってきたよ!でも、君が探しているお宝は、そこにはなかったよ!」
という違いです。#REF!は参照先そのものの喪失、#N/Aは参照先は正しいが見つからなかった、という違いですね。
呼び出しの数式
=VLOOKUP("カレーラーメン",A1:B10,2,FALSE)

A1:B10の範囲にメニューリストがあったとして、「カレーラーメン」(存在しない商品)という文字列をVLOOKUP関数で探しても、見つかるはずがありません。
そんな時、Excelは「探したけど、なかったよ!」と#N/Aエラーで親切に教えてくれます。
8. #スピル! (ERROR.TYPE: 9) – 「結果を書きたいのに、場所がない!」
どんな時に出る?
#スピル! は、スピル機能(動的配列)を持つ現代のExcelならではのエラーです。
「数式の結果を複数のセルに展開(スピル)したいのに、展開先のセルに既にデータが入っていて邪魔だよ!」というサインです。
※お使いの環境によっては「#SPILL!」と英語で表示される場合もあります。
呼び出しの数式
1. まず、A1セルに 、
={1;2}
と入力します。Enterを押すと、A1セルに「1」、A2セルに「2」がスピルして表示されますね。

2. 次に、A2セルに「あ」などの文字を手で入力します。
3. すると、A1セルの数式が#スピル!エラーに変わります!

これは、数式がA2セルに「2」を表示したいのに、既に「あ」という先客がいて場所を譲ってくれないために発生するエラーです。
A2セルの「あ」を消せば、エラーはすぐに解消されますよ。
9. #CALC! (ERROR.TYPE: 14) – 「計算、うまくいきませんでした…」
どんな時に出る?
#CALC! は、主に新しい動的配列関数で発生する、少し特殊なエラーです。
「計算しようとしたけど、結果が空っぽの配列になるなど、うまくいきませんでした」というサインです。
例えば、FILTER関数で絞り込んだ結果が1件もなかった場合などに発生します。
呼び出しの数式
=LAMBDA(1)
LAMBDA関数は、LAMBDA(引数, 計算式) のように、引数と計算式をセットで定義する必要があります。
「1」という引数だけを渡しても、何をしていいか分からず、#CALC!エラーになります。

【他の例】
A1:A5に1から5までの数字が入っている状態で、
=FILTER(A1:A5,A1:A5>10)
と入力してみてください。

A1:A5の中に10より大きい数値は一つもないため、FILTERの結果は「空」になります。その結果、Excelは#CALC!エラーを返します。
(=FILTER(A1:A5,A1:A5>10,"該当なし") のように、3番目の引数を指定すれば、エラーの代わりに”該当なし“と表示できます)

エラーの小話
今回登場しなかったエラーたち
実は、ERROR.TYPE関数には、今回紹介しきれなかったエラー番号も存在します。
例えば、#GETTING_DATA(8), #FIELD!(10), #CONNECT!(12) などです。
これらは、Power Queryで外部データを読み込んでいる最中や、データ型機能、株式市場データ連携など、特定の機能を使っている最中に表示される「一時的な状態」を表すことが多く、純粋な計算エラーとは少し毛色が異なります。
Web版Excelでは再現が困難なものも多いため、今回は省略しました。
"!" "?" "なし"の違いって?
エラーメッセージの最後についている記号、気になったことはありませんか?

・#NAME?: なぜこれだけ「?」なのでしょう。これは、Excelが「『SUMM』って何ですか?私はそんな名前を知りません。教えてください」と、私たちに問いかけているからです。
・#VALUE! など: 「!」がついているエラーは、Excelが「これは明らかに値の型が違う!」「参照先が消えている!」と、断定的に間違いを指摘している、強い主張の現れです。
・#N/A: これには記号がありません。なぜなら、これは厳密には「エラー」ではなく、「Not Available(利用不可)」という検索結果の「状態」だからです。「探したけど、なかった」という事実を、淡々と伝えてくれているのですね。
まとめ:エラーは、Excelからのメッセージだ!
今までただの邪魔者だと思っていたエラーたちが、実はそれぞれに意味があり、Excelが私たちに何かを伝えようとしてくれている、健気な存在に見えてきませんか?
「#NAME?」が出たら、「ああ、タイプミスかな?」
「#REF!」が出たら、「どこかのセルを消しちゃったかな?」
このように、エラーの種類から原因を推測できるようになることこそ、脱初心者のための最も重要な一歩です。
これからは、エラーが出ても恐れないでください。それは、あなたのスキルアップのチャンスを知らせる、Excelからのメッセージなのですから!


