ep25 公開 2026-10-26 AI×内部統制

AIが出した差異表、合計が合っていれば承認していいですか

本稿の数値はすべて合成データによるものです。EDINET実測は使っておらず、実在の会社・案件とは関係ありません。

【問い】月次の予実差異の説明資料は、AIに作らせれば表そのものは出てくる。ただし経営会議に出る説明も、報告に載る達成率も、決裁するのは自分だ。合計が合っている表の、どこを見て決裁すればよいのか。

【この記事で答えること】同じ実績データでも、分解式の選び方で説明が変わるのはなぜか。同じ5月に達成率が2つ出る条件は何か。合成の製品別予実データ(10製品×3か月)でAIに売上差異の分解をやらせた記録(2026年8月26日実行)から、決裁の手を表のどこへ置き直すかまで書きます。

【答え】素朴に頼むと、残差(数量×単価の交絡分)−60,000円が単価要因へ黙って合算されました。合計は1円まで合っていたので、表を眺めても分かりません。分解式を表に印字させ、残差を独立の列に出させるよう指示を足すと(実験2)、同じ実績から出る説明が変わります。もう1つ、同じ5月の集計行の達成率が105.6%と117.0%の2つ出ました。差は、分母と分子の母集団のズレです。予算のない期中投入の新製品の実績が分子に入っているのが117.0%で、AI自身が注記でそう断っています。注記を読まない承認者には「117%達成」だけが残ります。承認の手を、合計から式と分母へずらす——それがこの記事の提案です。


前提 — この工程は、いま誰が何をやっているか

想定する工程は、経営企画部の担当者1名が月1回作る、売上予実差異の説明資料です。

上場準備の現場では、この資料の水準が問われます。月次の予実差異を「数量が減った」「単価が下がった」のレベルまで割って説明できるかは、上場準備の過程で確認されることの多い項目です(この段落は一般的な実務の記述で、審査基準の原文には当たっていません。末尾に明記します)。

分解の中身を先に1つだけ。売上差異を数量と単価に割ると、必ず割り切れない部分が出ます。数量も単価も両方動いた場合の「動いた数量×動いた単価」の部分——本稿では残差(ミックス要因、交絡)と呼びます。この残差をどこに置くかは式の選択であって、計算の正誤ではありません。だからこそ、選択が資料に書かれていないと、誰も気づかないまま説明が変わります。

⚠️ なお本稿は社内管理資料の工程に限定します。業績予想の外部公表(適時開示)は別の規律が働く別工程であり、本稿の話をそのまま持ち込まないでください。


AIにやらせてみた

⚠️ 実行日2026-08-26。使ったのは本稿を下書きしているAI(Claude Fable 5)自身です。この節のモデル名・挙動の記述はこの日時点のものです。データはすべて【合成事例】で、実在の会社・案件とは関係ありません。

⚠️先に断っておきます。合成データを設計したAIと、プロンプトに答えたAIが同一です。どこに罠を仕込んだかを知っている者が解いており、盲検ではありません。そのため本節の「壊れた/壊れなかった」は、検算スクリプト(Python)で全行を再計算して一致・不一致を機械的に確認できる事実に限定して書きます。材料・出力・スクリプトは _materials/ep25/ に残してあります(yosan_jisseki_2026_0405.csv、yosan_jisseki_2026_06.csv、irai_mail.txt、output_1〜3、verify.py)。

与えた材料(合成データ)

合成の計測機器メーカー(10製品)の予実管理表CSVを、同じAIが作りました。わざと現実的な汚れを入れてあります:期中の価格改定(P-02、5/20から780,000円→820,000円)、予算のない期中投入の新製品(P-09、5月発売)、単価欄だけ千円単位の行(P-10、OEM契約の単価表の写しで「12.5」とだけ入っている。単位の注記はExcelからCSVへの変換で落ちた想定)、全角数字(P-08の5月実績数量「310」)、空欄(P-07の6月実績。販売終了)。

CSVの断片(4月分・抜粋):

製品コード,製品名,対象月,予算数量,予算単価(円),実績数量,実績単価(円),備考
P-01,標準測定器S-100,2026/04,120,"250,000",115,"250,000",
P-07,旧型測定器S-90,2026/04,20,"180,000",24,"165,000",在庫処分のため値引き販売
P-09,ポータブル測定器P-10,2026/04,,,,,5月発売予定・当初予算なし
P-10,OEM供給ユニットU-7,2026/04,500,12.5,480,12.5,

依頼メールの文面(合成)も一緒に渡しました。要点は「数量要因・単価要因に分けて」「達成率も併記」「6月分は経理の集計ブックの写ししかなく、予算は合計額のみ。取り急ぎあるもので」。この「取り急ぎあるもので」が実験3の伏線です。

使ったプロンプト(全文)

実験1(素朴版)——担当者がメールの文言をほぼそのまま流した想定:

添付の製品別予実データから、2026年4月の売上予実差異を製品別に
数量要因と単価要因に分解した表を作ってください。
差異の大きいものには一言説明をつけてください。

実験2(規律版)——式の明記と残差の禁止を足したもの:

あなたは経営企画部の担当者です。添付の製品別予実データから、2026年4月と5月の
売上予実差異の説明資料(CFO報告用)を作ってください。

要件:
1. 製品別に、差異を「数量要因」「単価要因」「残差(数量×単価の交絡)」の3つに分解すること。
2. 分解に使った式を、表と同じ資料の中に明記すること。
3. 残差を数量要因か単価要因のどちらかに黙って合算しないこと。残差は残差のまま示すこと。
4. 達成率を併記すること。
5. 差異の大きい順に、月ごとに上位3件へ一言の説明をつけること。
6. 金額の単位を明記すること。判断に迷った点は表の外に注記すること。

実験3は、実験2と同じプロンプトに6月ファイル(予算が合計額のみ)を渡したものです。

出力(通常のケース)——4月分。実験1と実験2で、同じ行の数字が変わった

実験1(素朴版)の出力から、問題の行と合計行を抜きます(単位:円):

製品差異数量要因単価要因
P-07 旧型測定器S-90+360,000+720,000−360,000
合計(9製品)−4,313,500−3,953,500−360,000

実験2(規律版)は、冒頭に分解式を印字したうえで、同じ行をこう出しました:

■ 分解式(本表の全行に適用)
- 数量要因 = (実績数量 - 予算数量) × 予算単価
- 単価要因 = (実績単価 - 予算単価) × 予算数量
- 残差(数量×単価の交絡) = (実績数量 - 予算数量) × (実績単価 - 予算単価)
- 検算: 数量要因 + 単価要因 + 残差 = 実績売上 - 予算売上
製品差異数量要因単価要因残差
P-07 旧型測定器S-90+360,000+720,000−300,000−60,000
合計(9製品)−4,313,500−3,953,500−300,000−60,000

同じCSV、同じ製品、同じ差異+360,000円。なのに単価要因が−360,000円と−300,000円で食い違います。差の−60,000円が残差です。実験1は、単価要因を「(実績単価−予算単価)×実績数量」で計算していました。実績数量を掛けると、残差は単価要因の中へ吸収されます。どちらの表も、合計は1円まで合っています。検算スクリプトで確かめました。合計が合うことは、式が明示されていることの代わりになりません。

なお、4月で両者の数字が食い違ったのはP-07の1行だけです。理由は単純で、4月に数量と単価が両方動いた製品はP-07だけだったから。残る8製品は実績単価が予算単価と同額で(単位が疑わしいP-10も、4月は予算・実績とも12.5)、単価要因も残差もゼロです。残差は「両方動いた行」にしか出ません。予実がおとなしい月に方式の違いは見えず、荒れた月に突然きいてきます。

出力(例外のケース)——5月分。価格改定・予算のない新製品・全角数字

実験2の5月の表(抜粋・単位:円):

製品差異数量要因単価要因残差達成率
P-01+1,744,000+2,000,000−240,000−16,000105.8%
P-02+1,300,003+780,000+507,320+12,683104.2%
P-07+900,000+1,440,000−300,000−240,000150.0%
小計(予算対象9製品)+5,442,503+5,955,000−252,680−259,817105.6%
P-09(予算外)+11,200,000分解不能分解不能分解不能−(分母なし)
全社計+16,642,503−−−117.0% ※

出力には注記が付いていました。原文のまま3つ引きます。

※3 P-09は5月発売で当初予算がない。予算0に対する要因分解は定義できないため「予算外売上」として別建てした。

※4 全社達成率117.0%は、分母(予算)に含まれないP-09の実績11,200,000円が分子に入っている。予算対比の達成率としては105.6%(小計行)を使うべき。

※6 P-08の実績数量「310」は全角数字だが310台として読んだ。

予想と違ったことが2つあります。第一に、予算のない新製品で達成率計算が壊れると予想していましたが、壊れませんでした。AIは分母のない達成率を「−」とし、予算外売上を別建てにしました。ただし「117.0%」という分母と分子の母集団がズレた数字は、注記付きながら全社計の行に載っています。注記を読まない承認者には「117%達成」だけが残ります。第二に、価格改定を月初から効いた前提で計算すると予想していましたが、これも壊れませんでした。CSVの実績単価が加重平均(792,683円)で入っており、備考欄に「5/20受注分から新単価820,000」が残っていたからです。壊れなかった理由は材料側にあります。備考が落ちていたら、あるいは単価欄が新単価820,000円で上書きされていたら、分解自体がズレていたはずです(この条件は今回試していません)。

細かい発見を1つ。P-02の実績売上32,500,003円は、真の売上32,500,000円(旧単価28台+新単価13台)と3円ズレています。丸めた平均単価×数量で売上を復元しているからです。差異表の売上が販売管理システムと数円合わない——月次でよく見るあの現象が、合成データでも再現しました。

出力(資料が足りないケース)——6月分。予算が合計額しかない

実験3の出力の冒頭(原文のまま):

6月分は、お渡しいただいた資料では数量×単価の要因分解ができません。

理由: 分解式(数量要因=(実績数量-予算数量)×予算単価 ほか)は予算の「数量」と「単価」を別々に使いますが、6月ファイルの予算は売上高の合計額のみで、数量・単価の内訳がありません。

そのうえで総額差異(予算対象9製品で+4,005,000円)だけの表を出し、P-07の空欄が「実績0か未集計か」の確認を求め、最後にこう申し出ました。

(b) 4-5月の予算単価を6月の代理値として使う。この場合、資料に「予算単価は4-5月の値を代用」と明記し、部長の承認を得てから使ってください。代理値での分解は私の側で作れますが、承認前に資料へ載せることはお勧めしません。

分解の捏造はしませんでした。しかし「代理値で作れます」という申し出はしています。依頼メールには「取り急ぎあるもので」と書いてあります。担当者が「では代理値で」と返せば、承認の手前で代理値入りの資料が完成します。止まるかどうかは、AIではなく工程側に承認欄があるかどうかで決まります。

どこで壊れたか

壊れ方に名前を付けます。後の回でもこの語彙を使います。

①残差の押し込み(実験1・実際に起きた)。素朴プロンプトに対し、AIは単価要因を実績数量ベースで計算し、残差−60,000円を単価要因へ合算しました。なぜか。原価計算の教科書的な慣行では、価格差異を実際数量ベースで計算して差異を2つに割り切る流儀が広く使われており、AIは指定がなければその流儀に従うからです(この慣行の帰属について特定の教科書原文には当たっていません。下書きしたAIの学習内容に基づく説明です)。つまりこれはAIの計算ミスではなく、式の選択を無言で行ったことが壊れ方の本体です。検算スクリプトで素朴版の式を5月に当てると、5行分の残差計−259,817円が単価要因へ移ります。金額が大きい月ほど、静かに大きく移ります。

②補完の既成事実化(実験2・実際に起きた)。P-10の単価「12.5」に対し、AIは桁の異常に気づき、「千円単位(12,500円/12,500円)と推定して計算を続行した(要確認)」と注記したうえで、表を完成させました。指摘した点は正しい。しかし推定単価入りの完成した表は、注記ごとコピーされて次の資料に流用されます。「要確認」の注記は、確認する工程がなければ2か月目から風景になります。実験3でも同じ推定が繰り返されました。

③代理値の申し出(実験3・実際に起きた)。上記のとおり、分解不能の宣言と同時に「代理値なら作れる」と申し出ました。誠実な挙動ですが、承認欄のない工程では抜け道になります。

④復元ズレ(実験2・実際に起きた)。丸めた平均単価からの売上復元で3円の差。金額は小さくても、「差異表と販売管理の数字が合わない」という問い合わせを1往復発生させる種です。

壊れなかったこと(正直に):計算そのものは全行、検算スクリプトと一致しました。全角数字は正しく読めました。予算のない新製品を数量要因へ押し込まず、別建てにしました。価格改定は月初フル適用にしませんでした——ただしこれは備考欄と加重平均単価という材料側の生存に依存した結果です。材料が整っていたから壊れなかった箇所と、プロンプトの規律で壊れなかった箇所は、分けて覚えておく必要があります。

人が直した差分

⚠️ 正直に書きます。この回で実際に手を動かして完了できた直しは1件だけです。残り2件は、合成事例の中に直す先(正本)を作っていないため、「直した」とは書けません。なお、直したのも、直せないと判定したのも、上の実験を回したのと同じAIです。

箇所直す前(AI出力)直した後何を見に行ったか
実験1のプロンプト「数量要因と単価要因に分解して」「3つに分解」「式を表と同じ資料に明記」「残差を寄せるな」の3行を追加(=実験2)verify.py の再計算と実験1の表を行単位で突合。食い違いはP-07の1行だけで、差はちょうど(実績数量−予算数量)×(実績単価−予算単価)=−60,000円だった
P-10の単価12.5「千円単位と推定(要確認)」つきの数字直せていない。 12,500円は検算スクリプト側の仮定(×1000)として明示するにとどめたCSV2本の全期間。P-10の単価欄には最後まで単位の記載がないことだけを確認した
6月の代理値「4-5月の予算単価を代理値に使える」という申し出採否を決めただけで、分解のやり直しはしていない。代理値を使わない側を選ぶ、と判断を書いた依頼メールの用途欄(CFO報告)。速報用途なら承認付きで代理値を使う判断もあり得る

下2件が「直せていない」のは、材料の作り方の限界です。単価の正本(OEM契約の単価表)も、6月の予算内訳も、合成データには入れていません。実在の工程なら、この2件はどちらも資料を直す仕事ではなく、上流の資料を取りに行く仕事になります。そして取りに行くかどうかを決めるのはAIではない——ここが、人に残った判断の実体です。


工程はどう変わったか

この実験を工程に置き直すと、作業は消えていません。移動しています。

消えた作業:電卓とスプレッドシートでの分解計算、表組み、説明コメントの初稿。10製品×3か月分の分解表と注記が、プロンプト2本で出ました。この工程が実在の会社で月何時間かかっているかは測っていないので、削減時間の数字は出しません。

移動した先:第一に材料の検品。P-10の単位、P-07の空欄、備考欄の生死。実験で壊れなかった箇所の大半は「材料が整っていたから」であり、材料を整える仕事は人に残りました。むしろ、AIが桁の異常や空欄を先に指摘してくるぶん、検品の着手点はAIの注記になりました。注記を読む仕事は新しく発生した仕事です。

第二に式の管理。実験1と実験2の違いはプロンプトの4行です。つまりこの工程では、プロンプトが計算方針を決める文書になっています。担当者の頭の中にあった「どの式で割るか」が、プロンプトと資料の印字に出てきた——これは負担増ではなく、属人性の外部化です。分解式が資料に印字されていれば、担当が替わっても、使うAIが替わっても、翌月の資料が同じ式かどうかを、2枚を並べるだけで照合できます。式の所在が人からプロンプトと資料へ移ったことが、この実験でいちばん長もちする変化です。

第三に承認の粒度。従来の承認は「表の数字を見る」でした。実験後の承認には、①分解式は先月と同じか、②推定・代理値の注記はないか、③達成率の分母に予算外が混ざっていないか、という式と注記への承認が加わります。承認者が見る場所が変わるので、CFOないし部長に一度、残差列の意味を説明する手間が発生します。これも新しい仕事です。

差引きすると、計算そのものの手数は減り、検品・式の管理・注記の承認という記録に残る仕事が増えました。増えた側は、上場準備で問われる「月次予実を説明できる体制」の証拠として残る種類の仕事です。総時間が減るかどうかは、今回は測っていません。


AIに任せる工程/人が判断する工程

工程AI/人補足(AI自体の統制)
分解計算・表組み・検算列AI検算式を表に印字させ、別ルート(スクリプト等)で再計算
例外の洗い出し(空欄・桁異常・全角)AI指摘で終わらせず、確認結果を記録する欄を様式に置く
分解式の選択・変更人プロンプトを版管理。式を変えたら資料に変更月を記す
単位・注記の正本確認(契約書・元帳)人AIの「推定」注記は承認されるまで数字扱いしない
代理値・補完の採否人承認欄を様式に設ける。承認者名と日付を残す
達成率の分母の決め(予算外の扱い)人「予算対象」と「全社」を別行にする様式で固定
説明コメントの最終文言人AI初稿は可。CFOに出る文言の責任は人
プロンプトと出力の保存人社外AIに予算データを渡すかは守秘・規程の問題として別途判断

⚠️ この結果を、こう読まないでほしい


【私の提案】


経営に効く一節

リスクを1つだけ名指しします。分解式が印字されていない予実差異表では、どの式で割ったかを誰も検算できない——この合成事例では、残差60,000円が数量でも単価でもない場所から単価要因へ黙って移りました。

この移動で合計は動きません。承認者が資料で最初に確かめるのはたいてい合計ですから、合計の検算はこの移動を素通りします。そして式が変われば、同じ実績から違う説明が出ます。「単価が悪化した」と「値引きと数量増が重なった」は、経営会議では別の意思決定につながる別の説明です。止める手段は、資料の見た目でも担当者の誠実さでもなく、分解式が資料に印字されていることでした。承認の手を入れる場所を、合計から式へ1つずらしてください。


今日の一歩

合成の1製品ぶんの予実(予算100個×1,000円、実績110個×950円で十分です)を手元のAIに渡し、「数量要因と単価要因に分解して」とだけ頼んでください。出てきた表で、(110−100)×(950−1,000)=−500円の残差がどこに入ったかを探す。所要15分。実データは使わないでください。


次に必要になる仕組み

月次の予実説明は、上場準備で最初に水準を問われる資料のひとつです。分解式の様式化、承認欄の設計、AIを入れた場合の記録の残し方まで含めて、IPO準備の管理体制づくりとして支援しています。


参照した資料と、確認できていないこと

資料分かること分からないこと
合成の製品別予実CSV2本・依頼メール・検算スクリプト(_materials/ep25/:yosan_jisseki_2026_0405.csv、yosan_jisseki_2026_06.csv、irai_mail.txt、verify.py)本稿の全数値。実験1〜3の出力(output_1〜3)と、verify.py による全行再計算の一致実在企業の予実資料で同じ壊れ方が出るか
下書きしたAI自身の出力(2026-08-26)この日・このモデル・このプロンプトでの挙動別モデル・別日・別プロンプトでの再現性

確認できていないこと:①「価格差異を実際数量ベースで計算する慣行」の帰属は特定の教科書原文に当たっていない(下書きしたAIの学習内容に基づく説明)。②上場審査で月次予実の説明水準が問われるという記述は一般的な実務理解であり、取引所の審査基準原文には当たっていない。③備考欄が落ちた場合・単価欄が新単価で上書きされた場合の壊れ方は、今回実験していない。④合成データを設計したAIと解答したAIが同一であり、盲検ではない(そのため本稿の「壊れた/壊れなかった」は、検算スクリプトで機械的に確認できる事実に限定している)。⑤この工程が実在の会社で月何時間かかっているかは測っていない。⑥この回にEDINET実測は使っていません。


IPO準備の支援を見る

公認会計士(登録番号22698)。日本暗号資産取引業協会(JVCEA)の設立時から関与し、新規暗号資産・交換業者の審査、統一経理基準および財務健全性指数の策定に携わった(いずれも当時)。本稿で用いるのは公表資料と、本文に明示した合成事例のみ。