結論:巨大なExcelで「どうしても合わない差異」が出たら、人がタブを行き来して探しても、まず見つかりません。準備(第0手)としてモデルはOpus 5以上を選び、ファイルは添付ではなくローカルフォルダごと読ませる。そのうえで2手で頼みます。①「この差異のセルは、どんな式の積み重ねでできているか。参照先を順に代入して、1本の式に整理して」。すると差異の正体が「AとBが一致していない」という一言まで縮みます。②「じゃあ元データを全件スキャンして、どこがその不一致を作っているか特定して」。この順番なら、人が丸一日かける調査が数分で終わります。
■ 実際にあった話
100MB近い決算用のExcelブック。タブが25枚あり、集計表もピボットも数式で数珠つなぎになっています。その中の検証用のセルに、どうしても消えない差異が残っていました。担当の方が何日か粘っても原因が分からない、という状態です。
このタイプは、人間には本当に厳しい。差異のセルを見ても、参照先の参照先の参照先……とたどることになり、途中で心が折れます。
■ 第0手:モデルはOpus 5以上、ファイルは「添付」ではなく「フォルダごと」
本題に入る前に、ここを外すと何も始まりません。
まずモデル。この手の調査は、Sonnetでは厳しいです。参照の連鎖を最後まで代数的に追い切って、しかも24万行の元データから異常なパターンを拾い上げる——これは連載でいう「作る」側の作業の極みで、Opus 5以上を選んでください。ここでケチると、それらしいけれど的外れな答えが返ってきます(第19回・第20回の使い分けの話です)。
次にファイルの渡し方。100MB近いファイルは、チャットに添付しても現実的に扱えません。デスクトップアプリでローカルのフォルダを接続して、そこに置いたファイルを直接読ませるのが正解です。
そしてそのフォルダには、2つ入れます。
・差異が出ている当期のファイル
・昨年の同じ四半期の、正常に完成しているファイル(=正解データ)
この2つ目が効きます。「本来どうなっているべきか」の見本があると、Claudeは「去年は全期間で数式が生きているのに、今年だけ3か月分が値になっている」と、すぐ異常を指摘できます。四半期をそろえるのも大事で、決算ブックは四半期ごとに作りが違うので、第2四半期の調査なら昨年の第2四半期を入れます。
■ 第1手:「1本の式に整理して」と頼む
そこでまず、Claudeにこうお願いします。
「このセルの数式を、参照先をすべて展開して、最終的に1本の式に整理してください」
すると、何十本もの参照が代数的に打ち消し合って、最後に残ったのはたった1行でした。「帳簿上の残高」と「残高×期末レート」が一致していない、それだけ。
ここが効くところです。差異の”金額”を追うのをやめて、差異の”定義”に還元してもらう。何と何を照合すればいいかが決まるので、探す範囲が一気に狭まります。
■ 第2手:「元データを全件スキャンして」と頼む
定義が決まれば、あとは元データです。
「元データを全件見て、この不一致を作っている行を特定してください。期間別・レート別に集計してから出してください」
元データは24万行ありました。人間には無理ですが、Claudeは全件読んで数分で表を返してきます。結果は明快で、ある3か月分だけ数式が消えて”値”になっており、しかも古いレートで固定されていた。数式を消した状態で貼り付けたせいでした。合計すると、差異の金額と1円まで一致しました。
■ 注意:チェックが「ゼロ」になっても、正しいとは限らない
最後にひとつ。今回の検証セルは「レートが正しいか」ではなく「ブックの中でレートが一本に揃っているか」を見ているだけでした。つまり、間違ったレートでも、全部そろえてしまえばゼロになります。
AIに「ゼロにするにはどうすれば」と聞けば、ゼロにする方法は教えてくれます。でもそれが正しいかは別の話です。「このチェックは何を検証していて、何を検証していないのか」まで説明させる。ここまで聞いて、はじめて安心して直せます。
■ まとめ
・第0手=準備。モデルはOpus 5以上(Sonnetでは追い切れない)。100MB級のファイルは添付せず、ローカルフォルダを接続してそのまま読ませる
・そのフォルダには「差異が出ている当期のファイル」と「昨年の同じ四半期の正解データ」の2つを入れる
・第1手は「参照先を展開して1本の式に整理して」。差異が”AとBの不一致”という定義まで縮む
・第2手は「元データを全件スキャンして、不一致を作っている行を特定して」。数十万行でも数分
・チェックがゼロ=正しい、ではない。「このチェックは何を見ていないのか」まで説明させる
差異は「いくら」ではなく「何と何が合っていないか」に還元させる。そこまで縮めば、あとは全件スキャンで終わります。
