関数を打ち終えて Enter を押した瞬間に「この数式には問題があります」と出て、セルが確定しない。計算結果がおかしいのではなく、入力そのものを受け付けてもらえない状態です。Excel が数式の構文を解釈できず、セルに入れる前の段階で止めているために起こります。
この記事では、Microsoft の公式ドキュメントに記載がある原因だけに絞って、見る順番を決めて並べます。まず数式を失わずに退避する手順も先に書きました。
結論:原因は5系統、最初に見るのは「区切り記号」
確定できない原因は「区切り記号」「関数名・引数」「かっこと引用符」「参照の形」「設定・環境」の5系統に整理できます。このうち、ある日突然すべての関数が通らなくなったときの筆頭は区切り記号です。Microsoft のトラブルシューティング記事が症状として挙げているのも、まさにこのケースです。
数式を入力すると、Windows の地域設定で既定の "リスト区切り記号" ではない記号を使用しようとすると、エラーが発生します。
同記事はこのときのメッセージを「この数式に問題が見つかりました。[数式] タブの [関数の挿入] をクリックして修正するか、[ヘルプ] をクリックして数式の一般的な問題の詳細を確認してください。」と記載しています(英語版の原文は "We found a problem with this formula. Try clicking Insert Function on the Formulas tab to fix it, or click Help for more info on common formula problems.")。リスト区切り記号が正しく設定されていない場合の数式エラーがその記事です。
なお、画面に出る見出しの文言は版によって「この数式には問題があります」「この数式に問題が見つかりました」と揺れます。「この数式には問題があります」という逐語の表記は、Microsoft の公式ドキュメント上では確認できませんでした(Microsoft Q&A の投稿では報告されています)。文言が少し違っても、原因の切り分けは同じ5系統で足ります。
症状×原因×最短の対処の早見表
症状 | 疑う原因 | 最短の対処 |
|---|---|---|
引数が2つ以上ある関数が全部通らない(SUM(A1,B1) など) | リスト区切り記号の不一致 | カンマをセミコロンに替えて1回試す。通ったら設定側を直す |
特定の関数だけ通らない | 関数名のスペルミス/その版に無い関数 | [数式]→[関数の挿入]から選び直す |
長い数式・入れ子の数式だけ通らない | かっこの対応が崩れている | 左かっこと右かっこの数を数える |
文字列を含む数式だけ通らない | 二重引用符の閉じ忘れ | 文字列を " で両側から囲む |
他シート・他ブックを参照する数式だけ通らない | シート名の単一引用符/ブック名の角かっこ漏れ | 参照はマウスでクリックして入れ直す |
Excel の再インストール・PC の入れ替え直後から全滅 | [システム区切り文字を使用する]と地域設定の食い違い | [ファイル]→[オプション]→[詳細設定]で確認 |
確定はできるが数式の文字がそのまま見える | セルの書式が文字列/先頭にアポストロフィ | 書式を標準に戻して再入力 |
まず1分で確認する3点
手を動かす前に、原因をおおまかに絞ります。どれも数式を書き替えずに確認できます。
- 引数が1つだけの関数は通るか。=SUM(A1) のように引数1つなら通り、=SUM(A1,B1) で止まるなら、原因はほぼ区切り記号です。
- 全部の数式が通らないのか、特定の数式だけなのか。全滅なら設定・環境側、1本だけなら構文側です。
- その数式をコピーして別の新規ブックに貼ると通るか。通るなら、元のブックのセル書式や参照の側に原因があります。
入れた数式を失わずに退避する
長い数式を打ち込んだ直後にこのダイアログが出ると、消してしまうのが一番の損です。確定できないまま閉じる前に、文字列として逃がしておきます。
先頭にアポストロフィ(')を付けて確定する
数式の先頭に半角のアポストロフィを足して '=SUM(A1,B1) の形にすると、Excel は数式として解釈せず文字列としてセルに入れます。Microsoft は数値や記号を文字どおりに入れたいときの方法として、「数字を入力する前のアポストロフィ ('11-53 や '1/47 など)」を挙げており、入力後にアポストロフィ自体は表示されません(数値から日付に自動的に変更されないようにする)。原因を直したら、先頭の ' を1文字削るだけで数式に戻ります。
セルの書式を「文字列」にしてから貼る
退避用の列を1つ作り、そこへ文字列の書式を当てておく方法もあります。手順はセルを選んで Ctrl+1 で[セルの書式設定]を開き、「テキスト」を選んで OK です(同上)。空いた列に数式のテキストを並べておけば、設定を直した後に貼り戻せます。
なお、確定できたのに数式の文字がそのまま見えている状態は、このエラーとは別の症状です。原因と直し方はExcel の数式が文字列のまま表示されるときの原因と直し方にまとめています。
原因1:区切り記号がカンマではなくセミコロン
複数の引数を持つ数式では、引数を区切る記号が決まっています。Microsoft は「使用する区切り記号は、OS ロケールと Excel の設定によって異なる場合があります。最も一般的なリストの区切り記号は、コンマ "," とセミコロン ";" です。関数のいずれかで誤った区切り記号が使用されている場合、その数式の処理は中断されます。」と説明しています(Excel で壊れた数式のエラーを回避する方法)。カンマが絶対ではなく、環境によってセミコロンが正解になります。
Excel 側の設定を見る
Excel の設定は[ファイル]→[オプション]→[詳細設定]の[編集オプション]にある[システム区切り文字を使用する]です。公式記事の手順は「[ファイル] > [オプション] を選択します。」「[詳細設定] タブの [編集オプション] で、[システム区切り文字を使用する] チェック ボックスをオフにします。」と書かれています(桁または小数点以下を区切るために使用する文字を変更する)。トラブルシューティング記事は、ここがオフで、入力している記号と合っていない場合を原因の1つとして挙げています。
Windows の「地域」設定のリスト区切り記号を見る
[システム区切り文字を使用する]がオンのとき、Excel は Windows 側の設定を使います。公式記事は「[システム区切り記号の使用] が有効になっている場合は、Windows コントロール パネルのリージョン (地域) 設定を確認します。リスト区切り記号は、[追加設定] で指定します。」と指示しています。つまり、数式の区切り記号は Excel 単体で決まっているのではなく、Windows コントロール パネルの[地域]→[追加設定]の「リストの区切り記号」から取られます。コンマは米国 - 英語ロケールの既定のリスト区切り記号です。
直し方と、直すときの副作用
対処は3通りあります。(1) Windows 設定で指定されているリスト区切り記号と同じ文字を数式に使う、(2) [リセット]ボタンで選択した国/地域の既定値に戻す、(3) Windows のリスト区切り記号を別の文字に変更する(一部の特殊文字は使用できません)。
ただし3番目には副作用があります。公式記事は「Windows 地域の設定でリスト区切り記号を変更すると、Excel が .csv ファイルの区切り記号として Windows のリスト区切り文字を使用するため、コンマ区切り値 (.csv) ファイルを開く又は保存する際の区切り記号に影響します。」と注記しています。CSV をやりとりしている業務なら、ここを触る前に影響範囲を確かめたほうが安全です。
原因2:関数名のスペルミスと、引数の数が足りない
1本の数式だけが通らないときは、関数名と引数の数を疑います。公式記事は「関数を入力すると表示される数式の構文をチェックして、その関数に必要な引数を入力したか確認します」としています。引数を入れている途中で表示されるヒントが、その関数が何をいくつ要求しているかの答えです。
[数式]→[関数の挿入]から入れ直す
手で打ち直すよりも、[数式]→[関数の挿入]で選び直すほうが早く確実です。関数の書式は「等号 (=) で始まり、その後に関数名、左かっこ、関数の引数をコンマで区切って、閉じかっこが続き」ます(数式の概要)。利用できる関数の一覧は、セルをクリックして Shift+F3 でも出せます。
その版に存在しない関数を使っていないか
新しい関数は、古いバージョンの Excel には存在しません。入力した関数名が正しくても、使っている版が知らない名前なら構文として成立しません。公式記事は、特定のアドインが有効になっている場合にのみ機能する関数についても注意を促しています。
あわせて、1本の数式に詰め込みすぎていないかも見ておきます。数式内には64レベルまでの関数をネストできます(同上)。
原因3:かっこと引用符の対応が崩れている
入れ子が深い数式でよく起きるのが、かっこの数の不一致です。公式記事は「すべてのかっこが数式で一致するペアの一部となっていることを確認します」とし、各左かっこに右かっこが必要だと書いています。IF の中に IF を重ねた数式は、末尾のかっこが1つ足りないだけで確定できません。
文字列は二重引用符で囲む
文字列を含む数式を作るときは、文字列を二重引用符で囲みます(同上)。=IF(A1="完了","OK","NG") のように、"完了" の開きと閉じが対になっている必要があります。日本語入力の全角引用符(”)になっていると、見た目は似ていても構文としては成立しません。
乗算は * だけで、x は使えない
Excel の乗算で使えるのはアスタリスク(*)だけで、x は使えません(同上)。演算子については「^ (キャレット) 演算子はべき算を実行し、* (アスタリスク) 演算子は乗算を実行」します(数式の概要)。ここを x や全角記号で書くと、確定前に止められます。
毎月のように同じ表で同じ数式を直しているなら、表そのものを入力画面に置き換えたほうが早い場合もあります。記事の途中で恐縮ですが、Mihata ではそうした作り替えもしています。
原因4:参照の形(シート名・外部ブック・範囲のコロン)
他のシートやブックを参照する数式だけが通らないなら、参照の書き方を見ます。公式記事は「別のシート内の値またはセルへの参照を入力し、そのシートの名前に英数字以外が含まれる場合は、名前を単一引用符で囲みます」としています。「売上 2026」のように空白や日本語が入るシート名は、'売上 2026'!A1 の形が必要です。
別ブックの参照は角かっこで囲む
別のブック内の値を参照する場合は、ブック名を角かっこで囲みます(同上)。パスやブック名を手で打つと崩れやすいので、両方のブックを開いた状態でマウスでクリックして参照を作るほうが安全です。
範囲のコロンを落としていないか
範囲参照のコロンが抜けていると、Excel はそれを名前として読もうとします。公式は、範囲参照のコロンが見つからない場合に #NAME? エラーになると説明しています(エラー値 #NAME? を修正する方法)。コロンの有無で、確定前に止まるか #NAME? が表示されるかが分かれます。
原因5:設定・環境(書式が文字列、手動計算、数式の表示)
数式そのものは正しいのに、セルや環境の側で結果が変わるケースもあります。確定できたのに計算されない、数式が文字のまま見える、といった症状はこの系統です。
セルの書式が文字列になっている
公式記事は「Excel で数式に値ではなく構文が表示される」節で、セルがテキストとして書式設定されている可能性を挙げ、書式を変更する必要があると説明しています。退避のために文字列書式を当てたセルを、そのまま使い続けていないかも確認します。
自動計算がオフになっている
手動計算が有効になっていると数式が計算されません(同上)。この症状は「エラーが出ない代わりに古い値が残る」という形で表れるので気づきにくく、原因と直し方はエクセルの数式が計算されないときの原因と設定の見直しに分けて書いています。
[数式の表示]がオンになっている
シート全体で数式が文字として見えているなら、[数式]→[数式の表示]がオンになっているだけの可能性があります。切り替えは Ctrl+` でも行えます(数式の表示と非表示を切り替える)。この場合はエラーダイアログは出ません。
似て非なるエラーとの違い
混同しやすい3つを並べます。決定的な違いは、確定できたかどうかです。「この数式には問題があります」は確定する前に止められるので、セルには何も入りません。
出方 | 何が起きているか | 見るところ |
|---|---|---|
ダイアログで確定できない | 構文として読めない(区切り記号・かっこ・引用符) | 入力した文字そのもの |
#NAME? | 確定はできたが、名前として読めないものがある | 関数名のスペル、定義された名前、コロン、引用符 |
#VALUE! | 確定はできたが、値の型が計算に合わない | 参照先のセルの中身 |
参照が正しくありません | 参照先そのものが成立していない | ファイル名・範囲・ピボットのデータソース |
#NAME? は「名前が読めない」
#NAME? は、数式名にタイプミスがある場合、Excel で定義されていない名前への参照がある場合、文字列の二重引用符が省略されている場合、範囲参照のコロンが見つからない場合などに出ます(エラー値 #NAME? を修正する方法)。原因は重なりますが、こちらはセルに入った後の表示です。
#VALUE! は「値が合わない」
Microsoft は #VALUE! を「入力した数式に問題があります。または、参照しているセルに問題があります。」と説明し、非常に一般的で正確な原因を見つけるのが難しい場合があるとしています(エラー値 #VALUE! を修正する)。原因として、日付が文字列として保存されている、セルに非表示のスペースが含まれている、といった点が挙げられています。数値が文字列として入っている表の直し方はエクセルの数値が文字列になって集計できないときの直し方にまとめました。
「参照が正しくありません」は参照先の問題
こちらは数式の構文ではなく、参照先が成立していないときに出ます。たとえばピボットテーブルでは、ブックのファイル名に角かっこが含まれていると "Data source reference is not valid" が表示され、ファイル名から無効な文字を取り除く必要があります(Excel PivotTable error "Data source reference is not valid")。症状別の切り分けはエクセルで「参照が正しくありません」と出るときの原因で扱っています。
再発防止:運用で防ぐ
同じ症状が繰り返す職場には、だいたい共通の背景があります。手を打てるところだけ挙げます。
- PC の入れ替え・初期設定の手順に「地域設定の確認」を入れる。区切り記号の全滅は、環境が変わった直後に集中します。
- 区切り記号を変える判断は CSV の運用とセットで決める。変更は .csv の読み書きにも影響します。
- 関数は手打ちせず[関数の挿入]か Shift+F3 で入れる。スペルミスと引数漏れの両方が減ります。
- エラーチェックを使う。[ファイル]→[オプション]→[数式]で[バックグラウンドでエラー チェックを行う]をオンにし、入れ子の数式は[数式]→[数式の監査]→[数式を評価する]で1レベルずつ確かめます(Excel で数式のエラーを検出する)。
- 長い数式を1本に詰め込まない。作業列に分けると、かっこの不一致そのものが起きにくくなります。
まとめ
「この数式には問題があります」は、Excel が構文を読めずに確定前で止めている状態です。原因は区切り記号・関数名と引数・かっこと引用符・参照の形・設定と環境の5系統で、引数が2つ以上の関数だけが全滅するなら区切り記号から見ます。
直す前に、数式の先頭にアポストロフィを付けて文字列として退避しておけば、打ち直しの手間はかかりません。#NAME? や #VALUE! は確定した後の表示なので、切り分けの入口が違います。
よくある質問
「この数式には問題があります」と出たとき、最初に何を確認すればいいですか。
引数が1つの関数が通り、引数が2つ以上の関数だけが通らないかを確認します。そうであれば原因はほぼリスト区切り記号なので、カンマをセミコロンに替えて1回試し、通ったらExcelのオプションとWindowsの地域設定を見直します。
数式の区切り記号はどこで決まっていますか。
Excelの[ファイル]→[オプション]→[詳細設定]にある[システム区切り文字を使用する]と、Windowsコントロールパネルの[地域]設定の[追加設定]で指定されるリスト区切り記号で決まります。コンマは米国-英語ロケールの既定のリスト区切り記号です。
Windowsのリスト区切り記号を変更しても問題ありませんか。
CSVに影響します。Microsoftは、Windows地域の設定でリスト区切り記号を変更するとExcelがCSVの区切り記号としてWindowsのリスト区切り文字を使うため、CSVファイルを開く・保存する際の区切り記号に影響すると注記しています。CSVをやりとりしている業務では影響範囲を先に確認してください。
打ち込んだ長い数式を消さずに残す方法はありますか。
数式の先頭に半角のアポストロフィを付けて確定すると、文字列としてセルに入ります。原因を直したら先頭のアポストロフィを1文字削るだけで数式に戻ります。退避用の列のセルの書式を、Ctrl+1で開く[セルの書式設定]から「テキスト」にしておく方法もあります。
#NAME?や#VALUE!とは何が違うのですか。
確定できたかどうかが違います。「この数式には問題があります」は構文として読めず確定前に止められるのでセルに何も入りません。#NAME?は確定した後に名前として読めないものがある場合、#VALUE!は入力した数式か参照しているセルに問題がある場合の表示です。