Excelを使っていると、突然セルに「#NAME?」と表示されて焦った経験はありませんか?
このエラーは、Excelが数式内で認識できない文字列に遭遇した際に表示される、意外と頻繁に起こりうるエラーの一つです。
今回は、この#NAME?エラーがなぜ発生するのか、具体的な例を挙げながらその原因と解決策を徹底的に解説します。
ということで、このページでは、「Excelで「#NAME?」エラー!?原因と解決策を徹底解説」についてご紹介します。
スグにためセル! – ここを読めばすぐ使える
「#NAME?」エラーは、関数名が誤っているときや、数式内の文字列を「”」で囲んでいないときなどに表示される関数です。誤りを修正すれば解消されます。
エラーの原因:関数名のスペルミスや数式内の文字列を「”」で囲んでいないとき
対処法:関数名を正しく直したり、文字列を「”」で囲む。
※ より詳しい解説はここから下に続きます。
#NAME?エラーとは?
#NAME?エラーは、Excelの数式内に認識できない文字列が入力されているときに表示されるエラーです。
簡単に言えば、エクセルが「これ何のことかわかりません!」と困っている状態を示しています。
#NAME?エラーが表示される主な原因
具体的に説明すると、#NAME?エラーは、主に以下の4つの原因で発生します。
具体例で学ぶ#NAME?エラーと解決策
それでは、それぞれの原因について具体的な例を見ていきましょう。
1. 関数名のスペルミス
最もよくある原因としては、関数名のスペルミスです。
例えば、合計を求めるSUM関数を入力しようとして「SUMM」と間違って入力すると「#NAME?」エラーが発生します。

このようなときは関数名を正しく修正すれば、「#NAME?」エラーを解消されます。
Excelの関数は非常に多く、スペルミスは起こりやすいミスの一つです。
しかし、関数入力時には予測候補が表示されていますので、これを活用することでこのようなミスを防ぐことができます。

2. 文字列の誤った記述
エクセルのルールとして数式を入力するとき(つまりセルの最初に「=」を入力してしているとき)に文字列を入力する場合は、ダブルクオーテーション「”」で囲まなければなりません。
しかし、「”」で囲むのを忘れてしまうと「#NAME?」エラーとなります。
例えば、80点を超えたときに合格と表示るため、IF関数を使って=IF(B2>80,合格,不合格)
と入力しました。

このとき、数式内に文字列「合格」と「不合格」がありますが、ダブルクオーテーション「”」で囲まれていません。そのため、「#NAME?」エラーが表示されているのです。
このようなときは、文字列をダブルクォーテーションで囲めばエラーは解消します。
特に日本語の文字列を入力する際には忘れがちなので注意しましょう。

ちなみに、実は文字列をダブルクオーテーションで囲まないと、エクセルは関数名や範囲名といった何かの名前だと認識します。例が日本語だからわかりづらいのかもしれませんが、例えば、「SUM」という文字列を入力したいのに、ダブルクオーテーションで囲まないと「SUM」という関数だと認識するということです。
そして、関数名だと認識していて、そのような関数が存在しない場合は、最初の事例と同じように関数名の入力ミスと判断されて「#NAME?」エラーが表示されるというわけです。

結局は関数名の入力ミスと判断されるから、「名前?」というエラー表示になるのですね。
3. 未定義の名前の参照
3つは、名前の定義という少し高度なテクニックを使っているときに生じるエラーですが、未定義の名前を参照した場合にも「#NAME?」エラーが発生します。
そもそも「未定義の名前」とは何かと思っている方もいると思いますので、簡単に説明すると、エクセルでは、セル範囲などに名前を定義することができるのです。
例えば、B2:B11
という範囲に「対象範囲」という名前をつけることができます。
そして、名前がついている範囲はB2:B11
と入力する代わりに「対象範囲」と名前で入力することができるようになります。

ちなみに、定義している名前を入力するときは、数式の中でもダブルクオーテーションで囲む必要はありません。
また、定義された名前は「数式」タブの「名前の管理」をクリックして、「名前の管理」画面で確認することができます。

では、「#NAME?」の話に戻しましょう。
上の図のように=SUM(対象範囲)と入力していても、「対象範囲」という名前が定義されていないときは、「#NAME?」エラーが発生します。

また、「対象範囲」という名前が定義されていても、間違って=SUM(選択範囲)と入力すると、同じように「#NAME?」エラーとなります。
このエラーを解消するには、参照したいセル範囲にきちんと名前が定義されているか確認しましょう。
数式を入力した後に、誤って名前を変更していたり、削除していることがありますので、改めて「数式」タブの「名前の管理」を確認してみましょう。
4. VBA(Visual Basic for Applications)のエラー
次にご紹介する例も、VBAのユーザー定義関数という高度なテクニックを使っているときに生じるエラーです。
ユーザー定義関数とは、VBAというプログラミングを利用してユーザーが自由に作成した関数のことです。
今回のエラーは、そのユーザー定義関数をセルに入力しているにもかかわらず、何らかの理由によりその関数が使用できないときに発生します。
関数が使用できない理由としてよくあるのがマクロが有効になっていない場合ですが、それいがいにもそもそもVBAのコードにエラーがあったり、関数名が間違っている場合にも関数は使用できません。

この場合は、まずExcelの設定でマクロが有効になっているか確認してください。
「ファイル」タブの「オプション」から「セキュリティセンター」を開き、「マクロの設定」を確認します。「警告を表示してすべてのマクロを無効にする」以外が選択されていることを確認してください。
マクロが有効な場合は、コードエラーの可能性がありますので、VBAエディター(Alt + F11キーで開く)でコードを確認し、エラーを修正したり、関数名が正しいかどうかも念のため確認しましょう。
#NAME?エラーへの対処法まとめ
ということで、「#NAME?」エラーが発生した場合、まずは以下の点を確認してみましょう。
これらの確認を行うことで、ほとんどの「#NAME?」エラーは解決できるはずです。
まとめ
「#NAME?」エラーは、Excelが数式内の文字列を認識できない場合に表示されるエラーです。
今回解説したように、その原因は多岐にわたりますが、一つひとつ確認していくことで必ず解決できます。
エラーメッセージに慌てることなく、冷静に原因を探り、適切な対処を行うようにしましょう。
以上、
このページでは、「Excelで「#NAME?」エラー!?原因と解決策を徹底解説」についてご紹介しました。