結論
前の記事で、「集計欄自身を範囲に含めない形で」と位置を名指しすると、小計欄が2回とも直りました。ただし集計欄が1段(小計だけ)の表でしか試していませんでした。今回、集計欄が2段(小計+その下に総合計)ある表で同じ一文を試しました。
| 状況 | やること | どうなるか |
|---|---|---|
| 集計欄が1段(小計だけ) | 位置を名指しする一文を使う | 10回中5回は直る。残り5回は列全体参照などで自己参照のまま |
| 集計欄が2段(小計+総合計) | 同じ一文に「総合計欄も◯行目にあります」を1文足す | 総合計欄は10回中7回正しい。小計欄が正しいのは10回中3回だけ |
| どちらの条件でも | 小計欄の数式は自分の目で検算する | 名指しの一文があっても、的中率は3〜5割で安定しない |
危ういのは「2段になったこと」ではありません。小計欄はもともと1段の時点で半分近く外していました。2段になって新しく崩れたのは、範囲の端が1行ずれて実データを取りこぼす誤りでした。
この記事は担当1名の判断ではなく、独立して起動したAI(claude --safe-mode、対話履歴もこのサイトの指示書も読めない状態)に、材料2本×各5回、計20回試させた記録です。
前提
| かかる時間 | 25分 |
| 費用 | 無料。無料のチャットAIで足ります |
| 必要なもの | 表計算ソフト(Excel または Google スプレッドシート)と、小計・総合計の2段がある表 |
| プログラミング | 不要。この記事の指示文をコピーして貼るだけです |
この記事は集計表の合計欄は、データの右に置くの続きです。あちらは集計欄が1段(部署ごとの小計だけ)の表で、位置を名指しする一文を2回試して2回とも直りました。ただし本文が自ら「集計欄が2段になっている等では、また違う結果になるかもしれません」と書いて終わっていたので、その「2段」を実際に作って試したのが今回です。
⚠️ 納品先の実データを、そのままAIに貼らないでください。この記事の材料はすべて架空です。
AIへの頼み方
1. 学習塾の月謝表で、まず1段(小計だけ)を試す
架空の学習塾の月謝管理表を用意しました。3教室(渋谷・新宿・池袋)の生徒ごとの月謝が2〜12行目、教室ごとの小計欄が13〜15行目(データの直後・同じ列)です。
材料2本(学習塾・カフェ)×各5回のうち、まず学習塾の5回です。1回目の返り(要旨)です。
=SUMIF(A:A,A13,C:C)
列全体参照(A:A・C:C)を使っているため、C13自身が範囲に含まれます。Excelに入れると循環参照になります。学習塾の5回のうち、集計欄自身を範囲外に出せたのは2回だけでした。
| 小計欄が範囲外に出たか | |
|---|---|
| 1回目 | 出ず(列全体参照) |
| 2回目 | 出た($A$2:$A$12 に固定) |
| 3回目 | 出た(範囲を1つ上まで伸ばす形) |
| 4回目 | 出ず(SUMIFS に条件を足したが、範囲自体は列全体) |
| 5回目 | 出ず(SUMPRODUCT だが範囲は $2:$100 で自分の行を含む) |
「集計欄自身を範囲に含めない形で」という一文があっても、5回中3回は自分の行を含む範囲のままでした。4回目は「集計行を除く」条件式(B:B,"<>合計")を自分から足しましたが、範囲そのものは列全体参照のままだったため、Excelの循環参照チェックはこの条件式を見ません。⚠️ 条件で除外したつもりでも、範囲に自分の行が含まれていれば直っていません。
2. 同じ表に総合計を1段足す(2段条件)
同じ学習塾の表の16行目に、全教室の総合計欄を1段追加しました。指示文に1文だけ足します。
学習塾の2段条件は5回とも、小計欄が範囲外に出ませんでした(1段条件の2/5から悪化)。ところが総合計欄(=SUM(C13:C15))は5回中4回、小計3セルだけを正しく足す形になっていました。
3. カフェの仕入れ表でも同じ2条件を試す
材料をカフェの仕入れ管理表(豆・茶葉/乳製品/食材の3カテゴリ)に替えて、同じ2条件を試しました。指示文は「教室」を「カテゴリ」に替えただけで、一文の骨格は同じです。
カフェは学習塾と違う崩れ方をしました。1段・2段とも小計欄が範囲外に出たのは5回中3回で、2段になっても割合は変わりませんでした。その代わり、自己参照とは別の新しい誤りが見つかりました。
=SUMIF($A$2:$A11,A15,$C$2:$C11)
1段条件の1回で返った数式です。範囲の端を「2〜11行目」に固定してしまいました。最後の食材(チョコレート・11,000円)が集計から漏れます。値は正しそうに見えても、実際に合計すると真値(48,000円)と一致しません。
⚠️ これは自己参照ではありません。範囲の端が1行足りないだけの、見た目には気づきにくい誤りです。同じ「2〜11行目」の取りこぼしは、2段条件の総合計欄でも2回出ました。自己参照だけを警戒していると見逃します。
4. 返ってきた数式を、実際の値で機械判定する
20回ぶんの数式を、Pythonで実際にシミュレートして判定しました。①小計欄が自分の行を範囲に含んでいないか ②含んでいなくても、正しいデータ範囲を過不足なく拾えているか、の2点です。目視ではなく、真値との一致を計算させています。
| 材料2本合算 | |
|---|---|
| 1段条件・小計欄が正しい | 5 / 10 |
| 2段条件・小計欄が正しい | 3 / 10 |
| 2段条件・総合計欄が正しい | 7 / 10 |
| 2段条件・両方とも正しい | 3 / 10 |
この記事の仮説(_hypothesis_queue.md H22)は「2段になると、両方の段が直る回数は、1段条件の的中率より下がる」でした。反証条件は「2段条件の『両方直った』回数を2倍した数が、1段条件の的中回数と同じか上なら棄却」(実行前に凍結済み)。実測は3×2=6で、1段条件の5以上でした。反証条件が成立したので、この仮説は棄却します。
うまくいかないときの言い直し方
総合計欄は直っているのに、小計欄がまだ危ない
2段条件の20回中、総合計欄だけが正しく小計欄が誤っていた回は7回ありました(両方正しい3回・総合計だけ正しい4回)。総合計欄を見て安心せず、小計欄を別に確認してください。
「小計欄・総合計欄のどちらも、それぞれ自分自身を範囲に含めない形で、
かつ行が増えても直さなくていい数式にしてください。総合計は明細行を
対象に集計し、小計欄と二重に合算しないようにしてください。」
「小計欄」「総合計欄」を分けて名指しした注意書きです。この記事の実測では、段ごとに別々に名指しした版そのものは試していません。次に2段の表を扱うときの叩き台として使ってください。
自分の数式が循環参照かどうか、自分では言わない
1段条件の1回目(=SUMIF(A:A,A13,C:C))は、返ってきた時点では循環参照への言及が一切ありませんでした。実際にこの表に入れたら循環参照になるか、名指しで聞き直しました。
聞き直すと、「はい、循環参照になります」と、理由(C13自身がA:A・C:Cの範囲に含まれる)つきで即座に正しく答えました。直したい範囲(=SUMIF(A2:A12,A13,C2:C12))まで自分から示しています。
⚠️ 前の記事の実測でも、抽象的な注意(循環参照や二重計上への一般論)は言えても、目の前の具体的な数式がそれに当てはまると気づくかどうかは別でした。「この数式は循環参照になりますか」と名指しで聞き直すと気づく、が今回も再現しました。ただし聞き直さない限り、自分から気づいて言うことはありません。返ってきた数式を「気づかなかったから安全」と早合点しないでください。
応用・次の一手
段ごとに分けて確認する
この記事の実測どおり、総合計欄と小計欄は別々に壊れます。2段以上の集計表を作らせたら、行を1つ足して合計が動くか見る方法を、小計欄と総合計欄の両方に、別々に当ててください。総合計欄が正しく動いたからといって、小計欄も正しいとは限りません。
範囲の端を、自分の目で1つ数える
今回新しく見つかった誤り(範囲の端が1行足りず、最後のデータを取りこぼす)は、循環参照のような警告が出ません。見た目はふつうの数式のままです。データの最終行が何行目かを自分で数え、数式の範囲の終わりと一致しているかを確認してください。
この記事の実測は、架空の表2種・特定の言い回し・材料2本×各5回=20回という少ない試行に限ります。集計欄が3段以上になる場合や、複数シートをまたぐ場合は、また違う結果になるかもしれません。金額が大きい集計表では、AIの数式に頼らず、行を1つ足して合計が動くかを自分の目で確かめてください。