Excelのデバッグでいちばん効く聞き方は、「答え」ではなく「答えを検証する手段」まで一緒に要求することです。原因の候補を3つ挙げてもらうだけでは「たぶんこれかも」で止まりますが、=LEN(A2) のような切り分け用の数式を同時に出させると、その場で真犯人を確定できます。
#N/A や #VALUE! で手が止まったとき、検索して出てくるのは「原因はいくつか考えられます」という一般論ばかり。Claudeが強いのは、あなたの数式そのものを読んで、その数式固有の原因を指摘できる点です。ただし聞き方を外すと、Claudeも一般論しか返しません。
なぜ「エラーが出ます」では解決しないのか
NG質問の典型がこれです。
VLOOKUPでエラーが出ます。直してください。
これに対する返答は、だいたいこうなります。
VLOOKUPのエラーにはいくつか原因が考えられます。①検索範囲の左端に検索値がない ②検索値の型が異なる ③範囲の指定がずれている——まずは参照範囲をご確認ください。
間違ってはいませんが、自分のシートのどれに当たるかは結局自分で試すことになります。原因を1つに絞るには、数式・エラー名・データの見た目の3点が最低限必要です。
数式エラー用|コピペ質問テンプレート
Excelの数式でエラーが出ています。原因を特定して修正版をください。 【エラー内容】 セルD2に #N/A 【現在の数式】 =VLOOKUP(A2,商品マスタ!A:C,3,FALSE) 【データの状況】 - A2の値:「A-1001」(他システムからコピペしたもの) - 商品マスタ!A列:A-1001、A-1002… が並んでいる - 見た目は一致しているのに一致判定されない 【環境】 Microsoft 365 / Windows 【欲しい答え】 1. 考えられる原因を可能性の高い順に3つ 2. 原因を切り分けるための確認用の数式 3. 修正後の数式(そのまま貼れる形で)
このテンプレだとClaudeはこう返す
原因の候補(可能性の高い順) 1. A2の末尾に空白や改行が混入している(他システムからのコピペで頻出) 2. 全角ハイフンと半角ハイフンの混在 3. 見た目は同じでも片方が文字列型、片方が数値型
切り分け用の数式(空きセルに貼って確認) -
=LEN(A2)&"/"&LEN(商品マスタ!A2)… 桁数が違えば原因1 -=CODE(RIGHT(A2,1))… 32なら末尾に半角空白、10なら改行 -=ISNUMBER(A2)&"/"&ISNUMBER(商品マスタ!A2)… 食い違えば原因3修正後の数式
=IFERROR(VLOOKUP(TRIM(CLEAN(A2)),商品マスタ!A:C,3,FALSE),"該当なし")
桁数が「6/5」のように食い違えば原因は確定。推測が検証に変わるのが、この聞き方の価値です。
使う前に:データのマスキング
質問には実データではなくダミー値を使ってください。取引先名は「A社」「B社」、金額は桁だけ揃えた架空の数字で十分です。原因究明に必要なのは値そのものではなく、データの形式と構造だからです。社内ルールがある場合はそちらを優先してください。
実行時エラー1004・9を解決するVBA用テンプレート
VBAでエラーが発生します。原因と修正コードを教えてください。 【エラーメッセージ】 実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです 【エラーが止まる行】 Range(Cells(1,1), Cells(lastRow, 5)).Select 【コード全文】 (ここにコードを貼る) 【やりたいこと】 シート「集計」のA1からE列最終行までを選択してコピーしたい 【条件】 - 修正はコード全文で返してください - なぜそのエラーになったのかも1〜2行で説明してください - より良い書き方があれば併せて提案してください
「コード全文で返して」は地味に効きます。差分だけ返されると、どこに入れるか迷って結局動かない事故が減ります。
そして最後の一行を足すと、返ってくる答えの質が変わります。
原因:
Cellsのシート指定がないため、アクティブシートが「集計」以外のときにRangeと参照シートが食い違い、1004になります。ただし、そもそも
.Selectは不要です。vba With ThisWorkbook.Worksheets("集計") .Range(.Cells(1, 1), .Cells(lastRow, 5)).Copy End WithWithでシートを固定し、.Cellsの先頭にピリオドを付けるのが定石。選択せずに直接コピーできるため、アクティブシート依存のバグが構造的に起きなくなります。
「エラーが直る」から「コードが良くなる」へ。ひとこと足すだけで、返答の価値が一段上がります。
エラー種類別|追加で伝えると効く情報
| エラー | Claudeに追加で伝えること |
|---|---|
#N/A |
検索値と参照先の実際の中身、LEN()・CODE()の結果 |
#VALUE! |
引数に文字列が混ざっていないか、空白セルの有無 |
#REF! |
直前に行や列を削除したか、シート名を変えたか |
#DIV/0! |
分母が空欄になり得るか、その時どう表示したいか |
#NAME? |
Excelのバージョン(XLOOKUPやFILTERが使えない環境か) |
#NUM! |
引数が範囲外か、反復計算が必要な数式か |
#SPILL! |
こぼれ先の範囲に何か入力されていないか |
特に #NAME? はバージョン起因が非常に多いので、「Excel 2019です」と一言添えるだけで、使えない関数を提案されるムダが消えます。
エラーは出ないのに答えが違う「静かなバグ」
実務でやっかいなのは、エラー表示が出ないのに数字が合わないケース。ここでは期待値と実際値をセットで渡すのが鍵です。
数式はエラーになりませんが、結果が想定と違います。 【数式】 =SUMIFS(売上!C:C,売上!A:A,">="&E1,売上!A:A,"<="&E2) 【期待する結果】1,250,000 【実際の結果】0 【前提】 - E1/E2は日付(2026/4/1、2026/4/30) - 売上!A列も日付のはずだが、他システムからのCSV取り込み 原因の候補と、A列が本当に日付型かを確認する数式を教えてください。
差分を明示すると仮説が立てやすくなり、「CSV取り込みで日付が文字列として入っている」という定番の落とし穴に一直線でたどり着けます。確認用には =ISNUMBER(売上!A2) が返ってくるはずで、FALSE なら文字列型で確定です。
コピー用|テンプレート3種の使い分け
| 症状 | 使うテンプレ | 必ず入れる項目 |
|---|---|---|
| セルにエラー表示が出る | 数式エラー用 | 数式・エラー名・セル番地・バージョン |
| マクロが途中で止まる | VBA用 | エラー番号・停止行・コード全文 |
| エラーは出ないが数値が違う | 静かなバグ用 | 期待値・実際値・データの出所 |
3つとも共通で、末尾にこの一文を必ず添えてください。
原因の候補に加えて、それを切り分けるための確認用の数式も出してください。
まとめ
- 答えだけでなく「検証手段」を要求する——これが最も効きます
- 数式やコードは要約せずそのまま貼る
- エラー名と発生セル(またはエラー番号と停止行)を書く
- Excelのバージョンを添える
- VBAなら「より良い書き方があれば提案して」を足す
テンプレをメモアプリに保存しておけば、あとは穴埋めするだけ。「なんとなく直った」を卒業して、原因を確かめながら潰していけるのが、Claudeを使ったデバッグの一番の価値です。
関連記事
- Claude APIでExcel VBAマクロを自動生成する【コピペで動く30行】
- ClaudeにExcel数式を聞くとき失敗する原因|伝えるべき5項目とコピペOK定型文
- Excel Copilotが答えを外す原因はデータの形|Power Queryで月次集計を5ステップ自動化
- Excelのエラーはもう怖くない|Copilotに聞くだけで原因と直し方がわかる
- Excel Copilotで“日本語で頼むだけ”VBAマクロ自動作成|生成・解説・修正の3ステップ