Excelの「#NAME?」エラーとは?原因と直し方を実例で解説
Marcus Reynolds
Published Jul 16, 2026
Excelの「#NAME?」エラーとは?原因と直し方を実例で解説
Excelで作業中、セルに突然「#NAME?」と表示される。売上表でも、勤怠管理表でも、請求書の計算シートでも起こる。数字が出るはずの場所に、この短いエラー表示だけが残ると、どこから直せばいいのか戸惑う人は少なくない。
「#NAME?」は、Excelが数式の中にある名前を認識できないときに出すエラーだ。関数名の入力ミス、範囲名の間違い、文字列の引用符忘れ、存在しない名前の参照などが主な原因になる。難しいエラーに見えるが、仕組みを知れば確認すべき場所はかなり絞れる。
この記事では、Excelの「#NAME?」エラーの意味、よくある原因、具体的な直し方、Googleスプレッドシートで似た表示が出る場合の注意点まで、実務で使える形で整理する。数式が苦手な人でも追えるよう、基本から順に見ていく。

「#NAME?」エラーの意味
Excelの「#NAME?」エラーは、数式内の文字や名前をExcelが理解できないときに表示される。英語の「NAME」は名前を意味する。つまりExcelは、「この名前が何を指しているのかわからない」と知らせている。
たとえば、合計を出す関数は「SUM」だが、これを「SMU」と入力するとExcelは関数として認識できない。その結果、セルには「#NAME?」が表示される。これは計算結果が間違っているというより、計算を始める前の段階で数式を読めていない状態に近い。
また、関数名だけが原因とは限らない。名前付き範囲、テーブル名、シート名、文字列、外部参照など、数式の中で「名前」として扱われる要素は複数ある。どれか一つでも不明なものがあると、「#NAME?」につながる。
最も多い原因は関数名の入力ミス
「#NAME?」で最初に確認したいのは、関数名のスペルだ。Excelは関数名を厳密に判定する。1文字違うだけでも、別のものとして扱われる。
よくある例は「=SUM(A1:A10)」を「=SAM(A1:A10)」や「=SUN(A1:A10)」と入力してしまうケースだ。平均を出す「AVERAGE」を「AVARAGE」と打つ、条件付き合計の「SUMIF」を「SUMIFF」と打つ、といったミスも起こりやすい。
日本語版Excelでは、関数の説明が日本語で表示されるため、関数名まで日本語で入力できると誤解されることがある。しかし通常、数式内の関数名は英語で入力する。「合計(A1:A10)」のように書いても、Excelは関数として認識しない。
修正方法は単純だ。数式バーをクリックし、関数名を正しいつづりに直す。入力中に表示される候補から関数を選べば、スペルミスを防ぎやすい。慣れていない関数ほど、手入力より候補選択を使ったほうが安全だ。
文字列をダブルクォーテーションで囲んでいない
次に多いのが、文字列の指定ミスだ。Excelの数式で文字を扱うときは、基本的にダブルクォーテーションで囲む必要がある。これを忘れると、Excelはその文字を「名前」として解釈しようとする。
たとえば、A1が「東京」と一致するか調べたい場合、正しい数式は「=IF(A1="東京","一致","不一致")」だ。ところが「=IF(A1=東京,"一致","不一致")」と書くと、Excelは「東京」という名前の範囲や定義を探す。見つからなければ「#NAME?」になる。
条件式、IF関数、COUNTIF関数、SUMIF関数、XLOOKUP関数などでは、文字列を扱う場面が多い。部署名、商品名、地域名、ステータス名を数式に直接書くときは、必ず「"営業部"」「"完了"」「"大阪"」のように囲む。
一方で、セル参照はダブルクォーテーションで囲まない。「A1」はセルの位置だが、「"A1"」はAと1という文字列になる。この違いも、数式の結果を左右する。
名前付き範囲が存在しない、または間違っている
Excelには、セル範囲に名前を付ける「名前付き範囲」という機能がある。たとえば、B2:B100に「売上」という名前を付けると、「=SUM(売上)」のように数式を書ける。表が読みやすくなる便利な機能だ。
ただし、名前付き範囲が削除されていたり、名前を間違えて入力したりすると、「#NAME?」が表示される。たとえば、登録名が「売上金額」なのに数式で「売上」と書いた場合、Excelはその名前を見つけられない。
確認するには、Excelの「数式」タブから「名前の管理」を開く。そこに登録されている名前、参照範囲、スコープを確認できる。不要な名前が残っていることもあれば、逆に必要な名前が消えていることもある。
複数人で同じブックを編集している場合、名前付き範囲の削除や変更に気づかないまま数式だけが残ることがある。月次報告や共有テンプレートでは、特に注意したいポイントだ。
関数が使えないExcelバージョンで開いている
Excelの関数は、バージョンによって使えるものが異なる。新しいExcelでは使える関数でも、古い環境では認識されず、「#NAME?」になることがある。
代表的なのは「XLOOKUP」「FILTER」「UNIQUE」「SORT」などの比較的新しい関数だ。Microsoft 365や新しいExcelでは使えても、古い買い切り版のExcelでは使えない場合がある。ファイルを別のPCで開いたときだけエラーになるなら、バージョン差を疑うべきだ。
対策としては、利用環境をそろえるか、古いExcelでも動く関数に置き換える。たとえば、XLOOKUPをVLOOKUPやINDEXとMATCHの組み合わせに変える方法がある。ただし、完全に同じ動作になるとは限らないため、置き換え後は必ず結果を確認する。
社内でテンプレートを配布する場合は、利用者のExcelバージョンを前提に設計したほうがよい。作成者の環境では正しく動いても、受け取った側で「#NAME?」が並ぶことは珍しくない。
外部アドインの関数が読み込まれていない
一部の数式は、Excel標準の関数ではなく、アドインや外部ツールが提供する関数を使っている場合がある。アドインが無効になっていたり、別のPCに入っていなかったりすると、その関数名をExcelが認識できず「#NAME?」になる。
分析ツール、会計ソフト連携、業務システム連携のExcelファイルで起こりやすい。作成したPCでは動くが、共有先のPCではエラーになる。これは数式そのものの間違いではなく、必要な機能が読み込まれていない状態だ。
確認するには、Excelの「ファイル」から「オプション」「アドイン」を開き、該当するアドインが有効かを見る。会社の管理PCでは、ユーザーが自由に追加できないこともある。その場合は情報システム部門や管理者に確認する必要がある。
シート名やブック名の参照ミス
別シートや別ブックを参照する数式でも、「#NAME?」は起こる。特にシート名にスペースや記号が含まれる場合、参照の書き方を間違えるとExcelが名前を正しく読めない。
たとえば、「2025 売上」というシートのA1を参照する場合、数式は「='2025 売上'!A1」のようにシート名をシングルクォーテーションで囲む必要がある。囲まずに書くと、Excelが構文を解釈できず、エラーにつながることがある。
シート名を変更した後に古い参照が残るケースもある。通常、Excelはシート名変更に追随するが、INDIRECT関数で文字列として参照している場合などは、自動更新されない。こうした数式は見た目では気づきにくい。
「#NAME?」を直すための確認手順
エラーの原因を探すときは、やみくもに数式全体を書き換えないほうがいい。まずは、どの部分をExcelが認識できていないのかを切り分ける。
| 確認する場所 | よくある問題 | 対処法 |
|---|---|---|
| 関数名 | SUM、IF、VLOOKUPなどのつづり間違い | 候補表示から正しい関数を選ぶ |
| 文字列 | 東京、完了、営業部などを引用符なしで入力 | 文字列をダブルクォーテーションで囲む |
| 名前付き範囲 | 登録名の削除、名称の不一致 | 名前の管理で登録内容を確認する |
| Excelバージョン | 新しい関数を古いExcelで開いている | 対応関数に置き換える、環境をそろえる |
| アドイン | 外部関数を提供するアドインが無効 | アドイン設定を確認する |
実務では、数式バーでエラーのあるセルを開き、関数名、文字列、名前付き範囲の順に見ると効率がよい。長い数式の場合は、数式の一部をコピーして別セルで試す方法も役立つ。
Excelには「数式の検証」という機能もある。数式タブから使える機能で、計算の流れを段階的に確認できる。複雑なIF関数やネストされた数式では、どこで解釈が止まっているのかを見つけやすい。
具体例で見る「#NAME?」の修正
例を見たほうが理解しやすい。次のような数式があるとする。「=IF(A2=完了,"OK","確認")」。この数式は、A2が「完了」ならOK、それ以外なら確認と表示したい意図だろう。
しかし、このままでは「完了」が文字列として扱われていない。Excelは「完了」という名前付き範囲を探す。存在しなければ「#NAME?」になる。正しくは「=IF(A2="完了","OK","確認")」だ。
別の例では、「=VLOKUP(A2,一覧!A:B,2,FALSE)」という数式がある。これは「VLOOKUP」のつづりが間違っている。正しくは「=VLOOKUP(A2,一覧!A:B,2,FALSE)」となる。
新しいExcel関数でも起こる。たとえば「=XLOOKUP(A2,商品コード,商品名)」が古いExcelで「#NAME?」になる場合、XLOOKUPが未対応である可能性がある。この場合、ファイルの問題ではなく、開いているExcel環境の問題として考える必要がある。
Googleスプレッドシートの「#NAME?」との違い
Googleスプレッドシートでも「#NAME?」に似たエラーが表示されることがある。基本的な考え方はExcelと同じで、関数名や名前付き範囲、文字列の指定に問題がある場合に起こる。
ただし、ExcelとGoogleスプレッドシートでは使える関数や書式が一部異なる。Excelで作ったファイルをGoogleスプレッドシートに変換したとき、対応していない関数や独自の機能がエラーになることがある。
また、地域設定によって引数の区切り記号が変わる場合もある。カンマを使う環境もあれば、セミコロンを使う環境もある。共有された数式をそのまま貼り付けて動かない場合は、区切り記号やロケール設定も確認したい。
Googleスプレッドシートで問題を直すときも、まずは関数名、引用符、名前付き範囲、対応関数の順に見る。Excelとの互換性だけに目を向けるより、数式を分解して確認したほうが早いことが多い。
エラーを防ぐための実務的な工夫
「#NAME?」は、入力ミスや環境差で起こりやすい。つまり、完全に防ぐのは難しい。それでも、発生率を下げる方法はある。
まず、関数は手入力だけに頼らない。Excelの候補表示や関数の挿入機能を使うと、スペルミスを減らせる。特に長い関数名や、使い慣れていない関数では効果が大きい。
次に、名前付き範囲を使う場合は、命名ルールを決める。「売上」「売上金額」「月別売上」のように似た名前が増えると、入力ミスが起きやすい。社内テンプレートでは、名前の一覧を管理しておくと後で困りにくい。
共有ファイルでは、利用者のExcelバージョンにも気を配る。新しい関数を使うなら、対象者がその関数を使える環境か確認する。互換性を優先するなら、古いバージョンでも動く関数で組む判断も必要だ。
また、完成した表を配布する前に、別のPCや別アカウントで開いて確認するとよい。作成者の環境だけで動く数式は、共有後に問題化しやすい。特にアドインや外部参照を含むファイルでは、この一手間が重要になる。
「#NAME?」と他のExcelエラーの見分け方
Excelには「#NAME?」以外にも多くのエラー表示がある。それぞれ意味が異なるため、見分けられると修正が早くなる。
「#VALUE!」は、数式の中で値の種類が合っていないときに出やすい。数字が必要な場所に文字が入っている、といったケースだ。「#DIV/0!」はゼロで割ったときのエラー。「#REF!」は参照していたセルが削除されたときによく表示される。
これに対し、「#NAME?」は名前を認識できないエラーだ。関数名、名前付き範囲、文字列の引用符、未対応関数を中心に確認する。エラーの種類ごとに見る場所を変えるだけで、修正時間はかなり短くなる。
急いで直したいときのチェックリスト
業務中に「#NAME?」が出たとき、細かい理屈を読む余裕がない場面もある。そんなときは、次の順番で確認するとよい。
関数名のつづりが正しいか確認する。
文字列をダブルクォーテーションで囲んでいるか見る。
名前付き範囲が存在するか「名前の管理」で確認する。
新しい関数を古いExcelで開いていないか調べる。
アドインや外部参照が必要な数式ではないか確認する。
この5点で、多くの「#NAME?」エラーは原因にたどり着ける。数式が長い場合でも、焦って全部を書き直す必要はない。エラーの出ている名前を一つずつ確認すればよい。
数式を直す前にバックアップを取る
実務のファイルでは、数式を直す前にコピーを残しておきたい。特に、月次決算、給与、在庫、請求に関わるブックでは、修正前の状態を残すことが大切だ。
「#NAME?」を直そうとして数式全体を削除したり、参照範囲を変えたりすると、別の計算結果に影響することがある。修正したセルだけでなく、その数式を参照している他のセルにも注意が必要だ。
Excelの「トレース先」「トレース元」機能を使えば、セル同士の関係を確認できる。重要な表では、エラーが消えたかどうかだけで判断せず、最終的な集計値まで見直すべきだ。
まとめ:#NAME?は「名前を読めない」サイン
Excelの「#NAME?」エラーは、数式の中にExcelが認識できない名前があるときに表示される。関数名の入力ミス、文字列の引用符忘れ、名前付き範囲の不一致、未対応関数、アドインの未読み込みなどが主な原因だ。
直し方の基本は、数式を分解して確認することにある。まず関数名を見る。次に文字列を確認する。名前付き範囲やExcelのバージョン、アドインも順に調べる。原因がわかれば、修正そのものは難しくない。
「#NAME?」は、Excelが壊れたという意味ではない。多くの場合、数式のどこかにある小さな不一致を知らせている。エラー表示を手がかりとして読めるようになれば、表計算の修正はずっと速く、落ち着いて進められる。