アイデンティティ・クライシス:なぜエラーが発生するのか
#NAME? エラーは、Google Sheets が混乱しているサインです。数式の中に、有効なコマンドや既知の場所として認識できない単語が見つかったことを意味します。ゼロ除算のような数学的なエラーとは異なり、これは「語彙」の問題です。スプレッドシートのエンジンは、実質的に「この単語の意味がわかりません」と伝えているのです。
#NAME?
主な根本原因
ほとんどの #NAME? 問題は、以下の4つの具体的なミスから発生します。
- 関数のスペルミス:
=VLOOKUP()の代わりに=VLOOKUPP()と入力している。 - 引用符のないテキスト: 単語をダブルクォーテーションで囲むのを忘れている。これにより、Sheets はそのテキストを隠れた変数であると誤認します。
- 削除された名前付き範囲: 管理マネージャーから名前を削除した後に、
=SUM(Q4_Revenue)のような範囲を参照している。 - 保存されていないスクリプト: まだ保存または承認されていないカスタム Apps Script 関数を呼び出している。
修正方法1:オートコンプリートでスペルミスを防ぐ
スペルミスは最も一般的な原因です。急いで =AVERGE(B2:B50) と入力しても、Sheets はそれが AVERAGE のつもりであることを理解できず、単にエラーとなります。
解決策: ソフトウェアの機能を活用しましょう。関数を入力し始めたら、青いオートコンプリートメニューが表示されるのを待ちます。最初の3文字を入力しても関数がリストに表示されない場合は、スペルミスの可能性があります。必ず候補をクリックして、スペルが正確であることを確認してください。
// 誤り:Sheetsは「SUMM」を名前付き範囲だと認識します
=SUMM(A1:A50)
// 正解:標準的な数学関数
=SUM(A1:A50)
修正方法2:テキストを引用符で囲む
これはよくある落とし穴です。セルに「Pending」という単語が含まれているか確認したい場合、=IF(A1=Pending, 1, 0) と書いてしまうかもしれません。引用符がないと、Sheets は「Pending」という名前の関数や名前付き範囲を探します。どちらも見つからない場合、#NAME? エラーを返します。
解決策: 文字列として扱うテキストは、常にダブルクォーテーション (" ") で囲んでください。これにより、エンジンはそれをコマンドではなく、単純なテキスト文字列として処理するようになります。
// 誤り:「Paid」が定義されていないため #NAME? を返します
=IF(C2=Paid, "Yes", "No")
// 正解:引用符を使用してテキスト文字列を識別します
=IF(C2="Paid", "Yes", "No")
修正方法3:名前付き範囲を確認する
名前付き範囲を使用すると、=SUM(Tax_2023) のような数式になり、=SUM(Sheet2!G2:G100) よりも格段に読みやすくなります。しかし、誤ってその範囲を削除したり、数式内でスペルを間違えたりすると、計算は即座に停止します。
確認方法:
- データメニューを開き、名前付き範囲を選択します。
- サイドバーを確認し、範囲が存在すること、および数式のスペルと完全に一致していることを確認します。
- アンダースコア(_)の有無を確認してください。範囲名が
Total_SalesなのにTotalSalesと入力した場合、数式はエラーになります。
修正方法4:Apps Scriptを同期する
Apps Script で作成されたカスタム関数は強力ですが、スプレッドシートとスクリプトエディタの同期が取れていないと #NAME? エラーが発生しやすくなります。これは特に新しいプロジェクトでよく起こります。
トラブルシューティングの手順:
- 拡張機能 > Apps Script に移動します。
- 関数名を確認してください。JavaScript は大文字と小文字を区別します。
calculateTax()とcalculatetax()は別物です。 - スクリプトエディタの保存アイコン(フロッピーディスクのマーク)をクリックします。Google のサーバーに保存されるまで、スプレッドシートはコードを「認識」できません。
- ブラウザのタブを更新して、スプレッドシートにカスタム関数ライブラリを強制的に再読み込みさせます。
/**
* シンプルなカスタム関数の例
*/
function MULTIPLY_BY_TEN(input) {
return input * 10;
}
// シート内での使用例: =MULTIPLY_BY_TEN(15)
修正方法5:地域の構文設定に注意する
スプレッドシートはローカライズされています。米国などでは引数の区切りにカンマを使用します(例:=SUM(10, 20))。一方、多くの欧州諸国ではカンマを小数点として使用するため、関数の区切り文字はセミコロンになります(例:=SUM(10; 20))。
チュートリアルから数式を貼り付けて #NAME? エラーが出た場合は、ファイル > 設定 で地域のロケール設定を確認してください。お住まいの地域の要件に合わせて、カンマをセミコロンに置き換える必要があるかもしれません。
エラーのない数式を作るためのプロのヒント
- F1ヘルプボックスを活用する: 関数の括弧内をクリックして F1 キーを押します。ヘルプドキュメントが表示されない場合、Sheets はその関数名を認識していません。
- プレーンテキストとして貼り付ける: ウェブサイトから数式をコピーするときは、
Ctrl+Shift+Vを使用します。これにより、数式バーに隠れた HTML フォーマットが入り込み、構文が壊れるのを防ぐことができます。 - 数式バーを確認する: 数式の冒頭に余計なピリオドやスペースが紛れ込んでいる(例:
= .SUM)だけで、エラーがトリガーされることがあります。

