これで何ができるか

集計表の不均等さを「1対3」から「1対6」に広げても、今回の実測では崩れる場所の数は増えませんでした。ただし、崩れた1か所に残っていた金額の割合は大きく縮みました。

  • SUMIFS方式(ラベルの文字列で絞り込む)を選んだ8回・745か所——すべて正しい値に届きました
  • SUBTOTAL方式(位置で範囲を切る)を選んだ1回——崩れたのは前作と同じ1か所だけでした。ただし崩れた1か所に残っていた金額は本来の約17%しかありませんでした(前作の不均等「1対3」では約33%)
  • 今回初めて、SUMを階層の深さで割るという第3の方式が出てきました。こちらは2か所崩れ、SUMを階層の深さで割る方式では、SUBTOTAL方式では崩れなかった総合計まで連鎖して壊れました
集計表の不均等さを1対6に広げても数式が正しい値に届くかを示した表。店舗売上表でSUMIFS方式を選んだ回は5回とも80か所ずつ正解で400/400(SUBTOTAL方式を選んだ回は0回)、部門経費表でSUMIFS方式を選んだ回は3回とも115か所ずつ正解で345/345、SUBTOTAL方式を選んだ回は115か所中114か所の正解(1回)、SUMを階層の深さで割る方式を選んだ回は115か所中113か所の正解(1回)。下の枠には、SUMIFS方式は合計8回・745か所すべてで正しい値に届いたこと、SUBTOTAL方式は前作と同じく1か所だけ崩れ場所も増えなかったこと、見たことのない第3の方式は2か所崩れ総合計まで連鎖したことが書かれている。
崩れる場所の数は前作と同じ「1か所」。増えたのは欠け方の深さのほうでした。

この記事は300行でも集計は崩れない——崩れたのはSUBTOTAL方式の1か所だけの続きです。あちらは本文の最後で「不均等さは『1対3』の比率のみ(もっと極端な比率は試していません)」と、自ら宿題を残して終わっていました。その比率を1対6まで広げて試したのが今回です。

「比率を広げても必ず1か所しか崩れない」という意味ではありません。試したのは架空データ2種・合計10回の範囲です。実際、今回見つかった第3の方式(SUMを深さで割る)は2か所崩れています。

前提

かかる時間 20分
費用 無料。無料のチャットAIで足ります
必要なもの 表計算ソフト(Excel または Google スプレッドシート)と、不均等な階層を持つ集計表(たとえば部門の数や支店の数が、グループごとに大きく違う表)
プログラミング 不要。この記事の指示文をコピーして貼るだけです

納品先の実データを、そのままAIに貼らないでください。この記事の材料はすべて架空です。

AIへの頼み方

1. 店舗別売上表(東日本1エリア対西日本6エリア・570行)で試す

前作の店舗別売上表(東日本1エリア対西日本3エリア)から、エリアの数だけを3から6に増やしました。東日本は関東の1エリアのまま、西日本は関西・中部・九州・東北・北海道・沖縄の6エリアです。

Excelの表です。1行目が見出し、A列〜F列です。F列が金額です。D列の区分に「◯◯店小計」「◯◯中計」「◯◯大計」「総合計」とある行が、それぞれの集計欄です(値はまだ入れていません。先頭の数字は行番号です)。 (570行の表全文。store_table.txt を参照) 小計欄・中計欄・大計欄・総合計欄のどれも、それぞれ自分自身を範囲に含めない形で、かつ行が増えても直さなくていい数式にしてください。

5回とも、SUMIFSでラベルの文字列を手がかりに絞り込む方式でした。考え方はこうです。

  • 店舗小計は「店舗名が同じ・区分が『売上』」の行だけをSUMIFSで合計する
  • エリア中計は「エリア名が同じ・区分が『〜小計』で終わる」行だけを合計する
  • 地域ブロック大計は「地域ブロック名が同じ・区分が『〜中計』で終わる」行だけを合計する
  • 総合計は「区分が『〜大計』で終わる」行だけを合計する

この4つを、同じ区分の行すべてにコピーし直し、570行全体で再計算しました。80か所(店舗小計70・エリア中計7・地域ブロック大計2・総合計1)すべてが正しい値に届きました。5回ともです。

店舗別売上表では、前作は5回中1回がSUBTOTAL方式(位置で範囲を切る方式)でしたが、今回は5回とも0回でした。とはいえ、どちらも5回だけの実測なので、「比率が極端になるとSUBTOTALを選ばなくなる」とは言い切れません。

2. 同じ指示文を部門別経費表(フロント1部署対バックオフィス6部署・640行)でも試す

材料も同じ比率(1対6)に揃えました。フロント事業部は営業部だけ、バックオフィス事業部には総務部・人事部・経理部・法務部・広報部・情報システム部の6部署があります。担当者は各部署15人、費目は5種類で、640行まで広げています。

Excelの表です。1行目が見出し、A列〜F列です。F列が金額です。D列の区分に「◯◯小計」「◯◯中計」「◯◯大計」「総合計」とある行が、それぞれの集計欄です(値はまだ入れていません。先頭の数字は行番号です)。 (640行の表全文。dept_table.txt を参照) 小計欄・中計欄・大計欄・総合計欄のどれも、それぞれ自分自身を範囲に含めない形で、かつ行が増えても直さなくていい数式にしてください。

今回は5回のうち3回がSUMIFS方式、1回がSUBTOTAL方式、1回が見たことのない第3の方式でした。SUMIFS方式の3回は、115か所(担当者小計105・部署中計7・事業部大計2・総合計1)すべてが正しい値に届きました。

SUBTOTAL方式の1回は、バックオフィス事業部大計の1か所だけが崩れました。崩れた式は、フロント事業部大計の式 =SUBTOTAL(9,F2:F92) を機械的にコピーした =SUBTOTAL(9,F549:F639) です。この範囲は、バックオフィス6部署のうち最後の1部署(情報システム部)だけを指していました。計算結果は1,633,000円。本来の9,863,000円に対してバックオフィス事業部大計に残ったのは約16.6%——総務部・人事部・経理部・法務部・広報部の5部署ぶんが、まるごと範囲から抜け落ちていました。

ただし総合計は壊れませんでした。理由はSUBTOTAL自身の仕様です。範囲内にある他のSUBTOTAL結果は、自動で無視されます。総合計の式 =SUBTOTAL(9,F2:F640) は、崩れたバックオフィス事業部大計の値を使わず、明細行だけを直接合計し直していました。

崩れた1か所の集計欄に、本来の値の何%が残っていたかを、不均等さ「1対3」と「1対6」で比べた横棒グラフ。不均等「1対3」(前作・店舗売上表)は約32%、不均等「1対3」(前作・部門経費表)は約34%、不均等「1対6」(今回・部門経費表)は約17%しか残らなかった。どの行も、崩れた集計欄には「最後の塊1個分」の値だけが残っていたことが注記されている。下の枠には、崩れた箇所の数そのものは前作も今回も1か所のまま増えなかったこと、残る金額の割合は塊の数(3個・6個)にほぼ反比例したこと(約1/3→約1/6)、見た目の崩れ方は同じでも気づかずに使うと欠落の規模は比率しだいで膨らむことが書かれている。
崩れた場所は毎回1個だが、そこに残る金額は塊の数におおむね反比例する。

もう1回は、SUMを階層の深さで割るという方式でした。理屈はこうです。

  • 中計の範囲には、生データと小計が2重に入っている
  • 大計の範囲には、さらに中計が重なって3重に入っている
  • だから範囲をSUMしてから、階層の深さ(2・3・4)で割れば本当の合計に戻る

この方式も、フロント事業部大計の式 =SUM(F2:F92)/3 をコピーした先(バックオフィス事業部大計)を見ました。結果はSUBTOTAL方式とまったく同じ、1,633,000円でした。さらに、SUMを階層の深さで割る方式では総合計まで壊れました(9,458,500円。本来は11,516,000円)。単純なSUMなので、崩れた事業部大計の値をそのまま足し込んでしまったのが理由です。

なぜ場所の数は増えず、金額の割合だけ縮むのか

位置で範囲を切る方式がコピーで崩れるのは、「直前の塊の個数が他と違う階層」が常に1つしかないことが原因です。今回の材料は、どちらも不均等な階層(地域ブロック大計・事業部大計)が1つだけです。そこに含まれる2つの集計欄(東日本・西日本、フロント・バックオフィス)のうち、コピー元に使われなかったほうの1つだけが崩れます。塊の個数を3から6に増やしても、崩れる階層の数自体は変わりません。

ただし崩れた式が指す範囲は、いつも「直前の塊1個分」の幅のままです。塊が3個のときはその1個が全体の約3分の1、6個のときは約6分の1を占めるので、崩れたセルに残る金額の割合も、ほぼそれに合わせて縮みます。

うまくいかないときの言い直し方

危険な階層を、数式を書かせる前に聞く

部門別経費表でまず1回試しました。

この表で、同じ数式をコピーするだけでは正しく集計できない階層はありますか。塊の個数が他と違う場所を教えてください。

危険な階層(事業部大計・バックオフィス側の6部署)をそのまま言い当てました。同じ質問を、店舗別売上表でも1回試しました。

この表で、同じ数式をコピーするだけでは正しく集計できない階層はありますか。塊の個数が他と違う場所を教えてください。

こちらも危険な階層(地域ブロック大計・西日本側の6エリア)をそのまま言い当てました。塊の個数が6個に増えても、「どこが危ないか」を聞く精度は落ちていません。SUBTOTAL方式やSUM÷深さ方式を選んだ回で、自分から「個別に入れる必要があります」と注意していたのと同じ結論です。危険な階層が見えているのに、コピーのときにだけその注意が外れる、という状態です。

壊れた数式を見せて、検証を頼む

バックオフィス事業部大計(F640)に次の数式を入れました。正しい値になっているか確認してください。 =SUBTOTAL(9,F549:F639)

1回試したところ、1回で誤りを検出しました。指摘の中身はこうです。

  • この範囲は情報システム部の区間しかカバーしていない
  • 総務部〜広報部の5部署が、まるごと範囲外になっている
  • 実質的に、バックオフィス事業部大計ではなく情報システム部中計と同じ値を返してしまう

そのうえで、正しい修正式 =SUBTOTAL(9,F94:F639) まで返ってきました。自分が機械的にコピーした結果は見逃していても、「この数式は合っていますか」と名指しで聞き直すと検出できます。

応用・次の一手

行を増やすときと同じく、不均等な階層を持つ表を広げるときも、必ず一度は全部の集計欄を検算してください。

この表の小計・中計・大計・総合計のそれぞれについて、同じ数式が全部の行に入っているか、範囲が隣の塊にずれていないかを確認してください。確認の方法も教えてください。

1回試したところ、まず正直に答えました。「表の値だけでは実際の数式までは読み取れないので、今これが正しいかは判定できない」という答えです。そのうえで、位置に依存しない検算式を自分から提示しました。D列(区分)の文字列を使った =SUMIF($D94:$D639,"*中計",$F94:$F639) のような式です。この検算式はラベルの文字列で絞り込みます。本来の数式がどんな範囲を参照していても——SUBTOTAL方式でもSUM÷深さ方式でも——崩れていれば検算の値と食い違います。

不均等な階層の個数を2個以上に増やした場合(今回はどちらの材料も不均等な階層は1個だけ)や、塊の個数をさらに増やした場合(6個を超える規模)は今回は試していません。試すとすれば、崩れたセルに残る金額の割合が「1÷塊の個数」からどれだけずれるかを確かめるのが近道です。

AIが示す数式や行番号を鵜呑みにしない考え方は、AIに数字を「それっぽく」埋めさせないための頼み方にも共通する話です。

⚠️ この結果は、この2種類の架空データ・合計10回+言い直しの確認4回の実測です。「不均等な階層は必ず1か所しか崩れない」と一般化しないでください。試したのは、次の範囲までです。

  • 不均等な階層は1個だけ(既存記事と同じ構造。2個以上の不均等な階層が重なる場合は試していません)
  • 比率は「1対3」「1対6」の2点だけ(この間や、これを超える比率は補間していません)
  • SUM÷深さ方式は1回だけの実測です(見つかったのが偶然1回だけなので、再現性は確認できていません)

今回の生の返りと、判定に使ったPythonコードは docs/evidence/subtotal-ratio-1to6-still-one-spot.md に全文置いてあります。