エラーの内容
数式を入力しても結果が表示されず、セルに #NAME? が表示されます。Excelが数式内の何かを認識できない状態です。主な原因は、見つけられない関数名、引用符のないテキスト文字列、存在しない名前付き範囲などです。
=SUMF(A1:A10) → #NAME?
=VLOOKUP(A1,B:C,2) → works fine
=VLOOKUP(A1,B:C,2,0) → works fine
=COUNTIF(A1:A10,yes) → #NAME? ← "yes" needs quotes
根本原因
Excelは数式内で解決できないトークンに遭遇すると #NAME? をスローします。主な原因は以下の通りです:
- 関数名のタイポ —
=SUMIFは動作しますが、=SUMFは間違いです(Excelの関数名は大文字小文字を区別しませんが、SUMFは存在しない関数です) - ダブルクォートなしのテキスト値 —
=COUNTIF(A:A,yes)のyesは"yes"とすべきです - 存在しない名前付き範囲 — 削除されたか、一度も定義されていない名前を参照している
- 範囲参照のコロン抜け —
=SUM(A1:A10)とすべきところを=SUM(A1A10)と記述している - 使用中のExcelバージョンで利用できない新しい関数 — Excel 2016での
XLOOKUP、LET、SEQUENCEなど - アドインが読み込まれていない状態でアドイン関数を使用 — アドインがオフの場合の
NETWORKDAYSなどのAnalysis ToolPak関数(旧バージョンのExcel) - ストレートクォートの代わりにカーリークォートを使用 — WordやWebページからの貼り付けで
"が""に置き換わることがある
修正方法
1. 関数名のスペルを確認する
関数名を入力し始めると、Excelのオートコンプリートが候補を表示します。何も表示されない場合、関数名が間違っています。
Wrong: =AVERGEIF(A1:A10,">0")
Right: =AVERAGEIF(A1:A10,">0")
Wrong: =CONCATINATE(A1,B1)
Right: =CONCATENATE(A1,B1)
-- or in M365: =CONCAT(A1,B1)
セルをクリックすると、数式バーで認識されない部分が赤くアンダーラインで表示されます。そこが修正すべき箇所です。
2. テキスト値をダブルクォートで囲む
数式内のリテラルテキストは、必ずストレートダブルクォート "" で囲む必要があります。
Wrong: =IF(A1=yes,"OK","No")
Right: =IF(A1="yes","OK","No")
Wrong: =COUNTIF(B:B,complete)
Right: =COUNTIF(B:B,"complete")
Wrong: =VLOOKUP(A1,Sheet2!B:D,2,false)
Right: =VLOOKUP(A1,Sheet2!B:D,2,FALSE) ← FALSE はキーワードであり、テキストではない
-- or: =VLOOKUP(A1,Sheet2!B:D,2,0)
注意:TRUE と FALSE はExcelのキーワードであるため、クォートは不要です。数値もクォートは必要ありません。
3. カーリークォート/スマートクォートを修正する
WebサイトやWordドキュメントから数式をコピーした場合、クォートがストレート("")ではなく、印刷用("")になっている可能性があります。Excelはこれを受け付けません。
Bad (curly): =IF(A1="done",1,0) ← " and " characters
Good (straight): =IF(A1="done",1,0) ← standard " characters
修正方法:数式を削除してExcel上で直接再入力するか、カーリークォートをストレートクォートに検索・置換してください。
4. 名前付き範囲を確認または再定義する
数式が =SUM(SalesData) のように名前を参照していて、SalesData が削除されたか名前が変更された場合:
- 数式 → 名前の管理(Ctrl+F3)に移動する
- 名前が存在し、正しい範囲を指しているか確認する
- 存在しない場合は、新規作成をクリックして再作成する
- 名前にエラー(
#REF!と表示)がある場合は、削除して再定義する
-- 数式で名前付き範囲を定義するには:
-- 範囲 A1:A100 を選択し、数式 → 名前の定義 → "SalesData" と入力
-- これで =SUM(SalesData) が機能するようになる
5. 範囲のコロン抜けを修正する
Wrong: =SUM(A1A10)
Right: =SUM(A1:A10)
Wrong: =AVERAGE(B2B50)
Right: =AVERAGE(B2:B50)
6. 互換性のある関数を使用するかアドインを有効にする
XLOOKUP、LET、UNIQUE、SEQUENCE、FILTER が #NAME? を返す場合、お使いのExcelバージョンはこれらの動的配列関数をサポートしていません。
- XLOOKUP →
VLOOKUPまたはINDEX/MATCHに置き換える - LET → 変数代入なしで数式を再構成する
- UNIQUE/SEQUENCE/FILTER → 旧バージョンのExcelには直接の代替手段なし。Microsoft 365へのアップグレードを検討してください
Analysis ToolPak関数(旧バージョンのExcel)の場合:ファイル → オプション → アドイン → Excelアドイン → 設定 → Analysis ToolPak にチェック → OK
7. テキスト結合でのアンパサンドとプラスの使い分けを確認する
Wrong: ="Hello "+A1 ← Excelでは + 演算子はテキストを結合しない
Right: ="Hello "&A1
通常これは #VALUE! になりますが、Excelが曖昧に解析した場合に #NAME? が発生することもあります。
クイック診断のコツ
#NAME? が表示されているセルをクリックし、F2 キーを押して編集モードに入ります。Excelは数式の各部分を色分けして表示します。範囲が青・緑・紫に色付けされる中で、色がつかずにそのままの部分が認識されていないトークンです。そこに注目してください。
また、セルの横に表示される警告の三角アイコンをクリックすると、**「このエラーのヘルプ」**から具体的な問題が特定できる場合があります。
確認方法
修正を適用した後:
- Enterキーを押す — セルに
#NAME?ではなく、数値またはテキストの結果が表示されるはずです - 数式が複数のセルにまたがる場合(配列数式またはスピル範囲)、範囲内のすべてのセルが正しく解決されているか確認する
- 数式 → エラーチェックを使用して、シート全体に残っているエラーをスキャンする
予防策
- 関数名は必ずExcel上で直接入力する — 外部ソースからのコピーは再入力なしに使用しない
- 関数の挿入ダイアログ(Shift+F3)を使用して、引数の入力ガイド付きで関数を参照・挿入する
- ブックをアップグレードまたは共有する際は、受け取り側が使用するExcelのバージョンを確認する — 動的配列関数(M365)はExcel 2016/2019では動作しません
- 名前付き範囲を定義したら、誤って削除されないよう専用のシートに記録しておく

