グループ会社どうしの債権債務を月次で突き合わせて、差異の原因まで切り分ける
グループ各社が出した債権・債務の明細を入力に、合う組を機械的に消し込み、残った差異を原因の型に分けて、相手会社への問い合わせ文まで作ります。連結担当の作業は、差異を探すことから、切り分けられた差異を確かめることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python
- 対象業界
- 商社/小売/建設/製造
- 対象部門
- 経理/財務
- 対象業務
- 内容確認・チェック/集計・分析
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 各社に、グループ間取引の明細を月次で提出してもらう
- 提出された明細をExcelにまとめる
- 会社の組み合わせごとに、債権側と債務側の合計を比べる
- 合わなければ、明細を1行ずつ突き合わせる
- 合わない行を見つけ、原因を推測する
- 両社に問い合わせて確認する
- 回答を待つ(ここで1〜2日かかる)
- 原因が分かったら、調整または消去仕訳を作る
- 各社が、決められた形式で明細を所定の場所に提出する
- 自動提出状況を確認し、未提出の会社に督促する
- 自動形式をそろえ、会社の組み合わせごとに並べる
- 自動金額・日付・相手先で機械的に消し込む(完全一致・近似一致)
- 自動残った差異を、6つの型に分類する
- 自動型ごとに、相手会社への問い合わせ文を作る
- 人連結担当が、分類と問い合わせ内容を確かめて送る
- 人回答を受けて、調整または消去仕訳を確定する
各工程の詳しい説明を読む
- 各社に、グループ間取引の明細を月次で提出してもらう
- 提出された明細をExcelにまとめる
- 会社の組み合わせごとに、債権側と債務側の合計を比べる
- 合わなければ、明細を1行ずつ突き合わせる
- 合わない行を見つけ、原因を推測する
- 両社に問い合わせて確認する
- 回答を待つ(ここで1〜2日かかる)
- 原因が分かったら、調整または消去仕訳を作る
問題は4つあります。
(a)明細の形式が会社ごとに違う。 列の名前も並びも違います。まとめるだけで時間がかかります。
(b)伝票番号で突き合わせられない。 売る側の伝票番号と買う側の伝票番号は別です。金額と日付で当たりを付けるしかありません。
(c)問い合わせの往復が長い。 「何が合わないのか」を文章で説明するのに時間がかかり、相手が誤解して的外れな回答が返ってきます。
(d)月初に集中する。 翌月第5営業日までという期限があり、この作業は3営業日に押し込まれます。
- 各社が、決められた形式で明細を所定の場所に提出する
- 【自動】 提出状況を確認し、未提出の会社に督促する
- 【自動】 形式をそろえ、会社の組み合わせごとに並べる
- 【自動】 金額・日付・相手先で機械的に消し込む(完全一致・近似一致)
- 【自動】 残った差異を、6つの型に分類する
- 【自動】 型ごとに、相手会社への問い合わせ文を作る
- 【人】 連結担当が、分類と問い合わせ内容を確かめて送る
- 【人】 回答を受けて、調整または消去仕訳を確定する
自動化されるのは「そろえる」「消し込む」「型に分ける」「問い合わせ文を作る」の4つです。残るのは「確かめて仕訳を決める」だけになります。
4の機械的な消し込みが、件数を大きく減らします。 240件のうち、8割前後は完全一致で消えます。AIが見るのは残りの2割です。
02今回想定するシステム構成
各社の会計システム → グループ間取引の明細(所定の形式で提出) │ ▼ SharePoint の提出フォルダ(会社ごと) │ ▼【トリガー】月初の定期実行 Power Automate │ ├──▶ 提出状況の確認・未提出の督促 │ ├──▶ 形式の正規化(列名・日付書式・符号の向き) │ ├──▶ 機械的な消し込み(完全一致 → 近似一致) │ └─ ここはプログラムで行う。AIを使わない │ ├──▶ LLM API ── 残った差異の型の判定と、根拠の提示 │ └──▶ LLM API ── 相手会社への問い合わせ文の作成 │ ▼ 差異一覧(型・根拠・問い合わせ文)──【連結担当が確認して送信】 │ ▼ 回答の記録 + 調整・消去仕訳の作成
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Power Automate | Make、n8n |
| 生成AI | Claude API | ChatGPT、Gemini |
| 差異計算 | Python | Google Apps Script |
連結会計システムの導入を先に検討してください。 グループ間取引の消去と照合は、連結会計システムの標準機能です。自前で組む価値があるのは、システムの導入までに時間がかかる場合、または会社数が少なくシステムが見合わない場合です。
03どうやって実装するのか
処理の起点を決める
月初の定期実行を起点にします。締めの期限から逆算して、第1営業日に動かします。
あわせて、提出があるたびに動く形にもします。 全社の提出がそろうのを待つと、作業が第3営業日に固まります。2社そろった時点でその組み合わせを処理すれば、作業が平準化されます。
Power Automate で組む場合、「Apply to each」が処理できる配列の項目数は10万件まで(Low の場合は5,000件)です。明細を1行ずつ回す設計にすると、件数によってはこの制限と処理時間の両方に当たります。行単位の突合はPythonで行い、Power Automate は起動と受け渡しに使ってください。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 債権明細 | 相手会社、計上日、金額、税区分、通貨、摘要、伝票番号 | 売る側の会計システム |
| 債務明細 | 同上 | 買う側の会計システム |
| グループ会社マスタ | 会社コード、正式名称、決算期、機能通貨 | 連結担当 |
| 換算レート | 月次の平均レート、期末レート | 財務部 |
| 前月の差異一覧 | 前月に未解決だった差異と、その経緯 | 連結担当 |
| 消込ルール | 許容する日数のずれ、許容する金額の差 | 連結担当 |
データの取得方法を決める
明細の提出: 各社の会計システムからCSVで書き出し、所定のフォルダに置いてもらいます。この形式を統一するところが、この構成でいちばん手間のかかる準備です。
Excelで受け取る場合、Power Automate の Excel Online(Business)コネクタで読めます。ただし、「テーブルに存在する行を一覧表示する」は既定で最大256行しか返さないため、全行を取るにはページ送りを有効にする必要があります。コネクタが扱えるファイルサイズの上限は25MBです。 明細が数千行になる場合は、CSVで受け取ってPythonで読むほうが確実です。
換算レート: 財務部が決めた月次のレートを使います。各社が勝手なレートで換算していると、差異が為替なのか実態なのか分かりません。
前月の差異一覧: これを入力に含めると、「先月も同じ差異が出ている」が分かります。繰り返し出る差異は、運用に原因があります。
AIへ渡す前に整形する
- 列名の正規化 … 会社ごとに違う列名を、共通の項目名に寄せます。列番号で読まないでください。 列が1つ増えただけで無言でずれます
- 符号の向きをそろえる … 債権側と債務側で符号の扱いが違うことがあります。突合の前にそろえます
- 通貨の統一 … 海外子会社の明細を、決められたレートで換算します。元の通貨と金額も残します
- 税区分の扱い … 税込と税抜が混ざっていないかを確認します。混ざっている場合は、突合の前に分けます
- 機械的な消し込み … 相手会社・金額・計上日で完全一致するものを消します。次に、日数のずれと金額の差を許容した近似一致で消します。ここまではすべてプログラムで行い、AIを使いません
5で消えなかったものだけがAIに渡ります。 ここを飛ばしてAIに全件渡すと、費用も時間も無駄になり、精度も落ちます。
AIに処理させる
プログラムにさせること: 正規化、換算、消し込み、集計。判定の入口を安定させるためです。
LLMにさせること:
| 処理 | 内容 |
|---|---|
| 差異の型の判定 | 残った差異を6つの型のどれかに分類し、根拠を示す |
| 対応関係の推定 | 「この債権行は、相手のこの債務行に対応していそうだ」を候補として挙げる |
| 摘要の読み解き | 「◯月分値引」「支給品相殺」など、摘要欄の記述から差異の説明を探す |
| 問い合わせ文の作成 | 相手会社の担当者が読んで、何を調べればよいか分かる文にする |
LLMに金額の計算をさせません。 合計、差額、レート換算は、すべてプログラムで計算した値を渡します。数値の計算をAIにさせると、検算ができません。
「対応関係の推定」も、候補どまりにします。 AIが「この行とこの行が対応する」と言っても、消し込みを自動で確定させません。人が確認して確定します。
構造化出力を使って、判定の形式を固定します。Claude APIの構造化出力は、制約付きデコードによってスキーマに沿ったJSONの生成をモデル側で保証します。 型の値が想定外の文字列で返ってくることを防げます。
指示内容を固定する
あなたは、グループ会社間の債権債務照合を支援する担当者です。
機械的な消し込みで残った差異について、原因の型を判定してください。
【厳守事項】
- 金額を計算しないでください。渡された数値をそのまま使ってください。
- 差異の原因を断定しないでください。
「〜の可能性がある」として、根拠になった記述を必ず引用してください。
- 明細に書かれていないことを補わないでください。
判定できない差異は type を unknown にしてください。
- 消し込みの確定をしないでください。
対応しそうな行は candidate として挙げるだけにしてください。
- 仕訳を提案しないでください。
【判定できる型】
timing(期ズレ)/ amount(金額違い)/ missing(未達)/
counterparty(相手先の取り違え)/ tax(税区分)/ fx(為替)/ unknown
【会社の組み合わせ】
債権側: {creditor_company} 債務側: {debtor_company}
【消し込み後に残った債権行】
{unmatched_receivables}
【消し込み後に残った債務行】
{unmatched_payables}
【前月に未解決だった差異】
{prior_month_open_items}
【換算に使ったレート】
{fx_rates}
「金額を計算しない」の1行は必ず入れてください。 差額はプログラムが出した値を渡し、AIには型の判定と説明だけをさせます。
問い合わせ文の作成には、別のプロンプトを使います。
判定された差異について、相手会社の経理担当者への問い合わせ文を作ってください。
【厳守事項】
- 原因を断定しないでください。「〜ではないでしょうか」と確認を求める形にしてください。
- 相手に調べてほしいことを、具体的な伝票の条件で書いてください。
(計上日、金額、摘要の文言)
- 責任の所在に触れないでください。
- 200字以内にしてください。 出力形式を固定する
{
"pair_id": "",
"creditor_company": "",
"debtor_company": "",
"difference_amount": 0,
"diagnosis": [
{
"type": "timing | amount | missing | counterparty | tax | fx | unknown",
"confidence": "high | medium | low",
"evidence": "",
"candidate_rows": { "receivable": [], "payable": [] },
"amount_explained": 0
}
],
"unexplained_amount": 0,
"inquiry_draft": "",
"recurring_from_prior_month": false
}
amount_explained と unexplained_amount をプログラム側で検算します。説明された金額の合計が差額に一致しない場合は、判定が破綻しているので人へ回します。
recurring_from_prior_month が真の差異は、別に集計してください。繰り返す差異は、個別に直しても翌月また出ます。
システムへ連携する
| つなぎ先 | 何をするか |
|---|---|
| 提出フォルダ | 各社の明細を受け取る。提出状況を管理する |
| 表計算 | 差異一覧を並べ、連結担当が確認と編集を行う |
| メール | 問い合わせ文を担当者の下書きに作る。自動送信はしない |
| 会計システム | 確定した調整・消去仕訳を登録する。人の承認を経る |
| 差異の記録 | 型・金額・解決日・原因を残し、翌月の入力にする |
人が確認する
全件、人が確認します。仕訳の自動登録はしません。
理由は、この作業の結果が決算数値になるためです。誤った消し込みは、グループの資産・負債を実態と違う金額にします。
確認を速くするための設計が重要です。
- 差異一覧を 金額の大きい順に並べる
- 型ごとに色分けし、同じ型をまとめて処理できるようにする
confidenceが低いもの、unknownを上に出す- 候補の対応行を、元の明細へリンクする
- 前月から繰り返している差異に印を付ける
例外に対処する
| 起きること | 対応 |
|---|---|
| 明細が未提出の会社がある | 督促を送り、その組み合わせの処理を保留にする |
| 列の並びが変わった | 列名で読む。列番号で読むと無言でずれる |
| 説明された金額の合計が差額と合わない | 判定が破綻している。人へ回す |
| 同じ金額の取引が複数あって対応が決まらない | 候補を複数挙げ、消し込みを確定しない |
| 相手先の会社コードが誤っている | counterparty として判定し、両社に確認する |
| 税込と税抜が混ざっている | 前処理で分ける。混ざったまま突合しない |
| 海外子会社のレートが指定と違う | fx として判定し、差額のうち換算による分を示す |
| 前月と同じ差異が出ている | recurring の印を付け、別に集計する |
| 明細の行数が多く処理が終わらない | 突合はプログラムで行う。ワークフロー側で行単位に回さない |
| 差異が期限までに解決しない | 未解決として持ち越し、翌月の入力にする。放置しない |
記録を残す
- 各社が提出した明細(原本)
- 機械的な消し込みの結果(何が一致し、何が残ったか)
- AIの判定と、その根拠
- 相手会社への問い合わせと回答
- 確定した調整・消去仕訳と、承認者
- 人がAIの判定を訂正した箇所
最初の項目は必ず残してください。 監査で「この消去はどの明細に基づくのか」を問われます。
最後の項目は精度の実測値になります。「期ズレの判定は正確だが、金額違いは半分が外れる」と分かれば、消込ルールを直す手がかりになります。
04実装レベルの3段階
半自動化の時点で、9分が5分程度になります。 突合の5分が消えるためです。本格構成にすると4分程度になりますが、会計システムへの連携が必要です。
05工数削減シミュレーション
導入後 240件 × 4分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 子会社・関連会社が5社以上あり、月次で債権債務の照合を行っている企業。会計システムが会社ごとに分かれていて、突合を表計算で行っている場合。グループ間取引が月200件以上ある場合。
- グループ全社が同一の会計システムに載っていて、内部取引が自動で消去される場合。子会社が1〜2社で、取引が月数件の場合。連結会計システムの導入を検討中の場合(そちらが先)。
07最小構成で試す方法
- 前月の照合で差異が出た組み合わせを10件選ぶ
- 両社の明細(消し込み後に残った行)を表計算で用意する
- 生成AIに渡し、差異の型と根拠を出させる
- 連結担当が、当時の結論と比べる
- 10件のうち、型が合っていたのが何件かを数える
この検証で、消込ルールの甘さも見つかります。 「本当は完全一致で消えるはずの行が残っていた」なら、前処理の問題です。
判断の目安は次のとおりです。
| 型が合っていた割合 | 判断 |
|---|---|
| 8割以上 | 自動化する価値がある |
| 5〜8割 | 摘要欄の書き方に原因があることが多い。各社に記入ルールを依頼する |
| 5割未満 | 明細の項目が足りない。先に提出形式を決める |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 会社ごとに列が違い、そろえられない | 提出形式を1枚のひな形で配る。列名で読む |
| 突合の対象が多く処理が終わらない | 完全一致 → 近似一致の順に段階的に消す。AIに全件渡さない |
| AIが金額を計算して間違える | 数値はプログラムが出した値だけを渡す。計算を禁止する |
| 説明された金額が差額と合わない | 検算を入れ、合わなければ人へ回す |
| 同額の取引が複数あり対応が決まらない | 候補を複数出し、確定しない |
| 摘要が空欄で判定できない | unknown で返す。各社に記入を依頼するほうが効く |
| 為替の差異と実態の差異が混ざる | 換算前の金額と通貨を必ず残す |
| Excelコネクタが256行しか返さない | ページ送りを有効にする。行数が多ければCSVで受け取る |
| 未解決の差異が毎月積み上がる | 繰り返し差異を別に集計し、運用の問題として扱う |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: グループ会社間の取引金額、取引先、値引きの記録。グループの内部取引の全体像が含まれます。
- 連結前の数値の機密性 … 連結決算が確定する前の数値は、上場企業では重要事実になりうる情報です。 外部サービスへの入力可否を、情報管理規程とインサイダー取引の管理規程で確認してください
- 取引条件 … グループ内の移転価格に関わる情報が含まれることがあります。税務上の論点になりうるため、取り扱いを税務担当と確認してください
- 数値の計算をAIにさせない … 差額、合計、換算はプログラムで計算します。検算できない数値を決算に使わないでください
- 消し込みの自動確定をしない … AIが示すのは候補です。確定は人が行います
- 仕訳の自動登録をしない … 調整・消去仕訳の登録は、承認を経てから行ってください
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- 監査への対応 … 消去の根拠となった明細と、判断の経緯を残してください。「AIが判定した」は監査の説明になりません
- 自動実行してよい範囲 … 正規化、消し込み、型の判定、問い合わせ文の作成までです。消し込みの確定、仕訳の作成、承認は、必ず人が行います
誤りが起きた場合のリスクは、誤った消去による連結数値の誤りです。修正があれば、開示済みの数値の訂正につながることもあります。検算を必ず入れ、確認の工程を省ける設計にしないでください。
10まず何から始めるか
1週目:差異の型を数える
過去3か月の差異を、6つの型で分類してください。「期ズレ」が7割を占めるなら、この構成より先に締めの日程を合わせるほうが効きます。
あわせて、繰り返し出ている差異を数えてください。 毎月同じ組み合わせで出ているなら、原因は運用にあります。
2〜3週目:提出形式をそろえる
各社に配る明細のひな形を1枚作ります。項目は、相手会社コード・計上日・金額・通貨・税区分・摘要・伝票番号です。
摘要欄の書き方も決めてください。 「値引」「相殺」「支給品」といった語を使うよう依頼するだけで、判定の質が変わります。これはAIを使わなくても効きます。
4週目:消込ルールを決める
許容する日数のずれと、許容する金額の差を決めます。ここを決めると、機械的に消せる割合が分かります。 8割前後消えるなら、この構成が成り立ちます。
2か月目:10件で試す
前月に差異が出た10件で、型の判定を試します。当時の結論と比べてください。
3か月目以降: 提出から差異一覧までを自動化し、1か月回します。9分が何分になるかを実測してください。
半年後には、繰り返し差異の集計を経営に出してください。 照合の工数より、なぜ毎月同じ差異が出るのかのほうが、解くべき問題であることがあります。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Power Automate の Excel Online(Business)コネクタの「テーブルに存在する行を一覧表示する」が既定で最大256行を返し、全行を取得するにはページ送りを有効にする必要があること。既定では最初の500列が返り、Select Query で取得する列を指定できること。サポートされるExcelファイルの最大サイズが25MBであること。接続ごとのAPI呼び出しが60秒あたり100回に制限されること | Microsoft Learn:Excel Online (Business) コネクタ | 2026-09-21 |
| Power Automate のクラウドフローで、「Apply to each」ループが処理できる配列項目の最大数が10万件(Low の場合は5,000件)であること。ワークフローごとのアクション数の上限が500であること。実行の継続時間の上限が30日であること。同時実行制御をオンにした場合の並列度が1から100(既定25)であること | Microsoft Learn:自動化フロー、スケジュールされたフロー、インスタント フローの制限事項 | 2026-09-21 |
| Claude APIの構造化出力が、制約付きデコードによりスキーマに沿ったJSONの生成をモデル側で保証すること。列挙・定数・参照は使えるが、再帰スキーマや数値の範囲指定は使えないこと | Claude Docs: Structured outputs | 2026-09-21 |
連結決算が確定する前のグループ内の数値は、上場企業では重要事実にあたることがあります。 外部の生成AIサービスへの入力可否を、自社の情報管理規程とインサイダー取引の管理規程で確認してください。グループ間取引には移転価格に関わる情報が含まれるため、取り扱いを税務の担当と確認してください。 また、この構成が出す差異の型は候補であり、消去仕訳の根拠にはなりません。消し込みの確定、調整・消去仕訳の作成と承認は、必ず人が行ってください。 監査への説明に必要となるため、消去の根拠となった明細と判断の経緯を保存してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。会計システムからの明細の書き出し形式と、仕訳の登録方式は製品によって異なります。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0135)についてのご相談はこちらから。
