取引銀行から紙で届く当座勘定照合表を読み取り、でんさい・振込・口座振替などの入出金を当座預金の帳簿と照らして、未記帳と食い違いを拾う
取引銀行から紙で届く当座勘定照合表を読み取り、明細の1行ずつを当座預金の帳簿、でんさいの決済予定、手形・小切手の振出の記録と照らします。帳簿に無い入出金と、金額・日付の食い違いを一覧にして、担当が確かめる行を絞ります。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Make/n8n/Power Automate/Python
- 対象業界
- 商社/建設/物流/製造
- 対象部門
- 経理/財務
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 照合表が届いたら、担当が口座ごとに綴じる
- 会計システムから当座預金の元帳を出力し、印刷する
- 照合表の1行ずつに定規を当て、元帳の同じ日付・同じ金額の行を探してチェックを付ける
- でんさいの決済の行は、でんさいの決済予定の一覧と照らす。手形・小切手の行は、振出の台帳の番号と照らす
- 照合表にあって元帳に無い行(未記帳)と、金額・日付の合わない行に印を付ける
- 印の付いた行を、経理の記帳担当と営業・購買の担当に問い合わせ、記帳を直す
- 月末の残高を照合表と元帳で合わせ、銀行勘定の調整表を作る
- 人照合表が届いたら、口座ごとにスキャンして受領フォルダに保存する(銀行・口座・対象期間をファイル名に入れる)
- 自動ファイルの保存をきっかけに、Power Automate が照合の処理を呼ぶ
- 自動Azure AI Document Intelligence のレイアウト モデルが、明細の表をセルと単語の信頼度とともに返す
- 自動照合の処理が、銀行ごとの列の対応表で列をそろえ、ページをまたぐ表を1つにつなぐ
- 自動行ごとに残高の計算を確かめ、合わない行に `misread_suspect` の印を付ける
- 自動帳簿の元帳、でんさいの決済予定、手形・小切手の台帳と、金額・日付・区分で1行ずつ照らす
- 自動照らせなかった入金の行について、Azure OpenAI が摘要の振込名義と取引先の一覧から候補を挙げる
- 自動結果を `matched`/`unrecorded`/`mismatch`/`misread_suspect` に分けて一覧にする
- 人担当が `matched` 以外の行だけを照合表の画像で確かめ、記帳担当・営業・購買に問い合わせる
- 人記帳を直したら、一覧の行に対応を書き、月末の調整表を作る
各工程の詳しい説明を読む
- 照合表が届いたら、担当が口座ごとに綴じる
- 会計システムから当座預金の元帳を出力し、印刷する
- 照合表の1行ずつに定規を当て、元帳の同じ日付・同じ金額の行を探してチェックを付ける
- でんさいの決済の行は、でんさいの決済予定の一覧と照らす。手形・小切手の行は、振出の台帳の番号と照らす
- 照合表にあって元帳に無い行(未記帳)と、金額・日付の合わない行に印を付ける
- 印の付いた行を、経理の記帳担当と営業・購買の担当に問い合わせ、記帳を直す
- 月末の残高を照合表と元帳で合わせ、銀行勘定の調整表を作る
(a)行数が多く、目での突き合わせに時間がかかる。 1枚に30〜40行あり、元帳の側は日付順でも同じ日に同じ金額の振込が何件も並びます。どの行とどの行を対応させたかを、チェックの印だけで覚えておくのは難しく、途中で数え直しになります。
(b)銀行ごとに書式が違う。 銀行ごとに見る列の位置と摘要の読み方が違うため、担当は銀行ごとに頭を切り替えながら読んでいます。 慣れた担当が休むと、別の担当は倍の時間がかかります。
(c)記帳漏れが月末まで見つからない。 口座振替の手数料、でんさいの決済の手数料、取引先が予告なく振り込んだ入金は、照合表で初めて分かることがあります。 突き合わせが月末にまとめて行われるため、記帳の漏れが資金繰りの見込みに入らないまま月が進みます。
(d)読み違いと記帳漏れが区別できない。 照合表の印字がかすれていると、担当が数字を読み違え、元帳に無い入出金として問い合わせてしまうことがあります。 問い合わせを受けた側は、存在しない取引を探すことになります。
- 【人】 照合表が届いたら、口座ごとにスキャンして受領フォルダに保存する(銀行・口座・対象期間をファイル名に入れる)
- 【自動】 ファイルの保存をきっかけに、Power Automate が照合の処理を呼ぶ
- 【自動】 Azure AI Document Intelligence のレイアウト モデルが、明細の表をセルと単語の信頼度とともに返す
- 【自動】 照合の処理が、銀行ごとの列の対応表で列をそろえ、ページをまたぐ表を1つにつなぐ
- 【自動】 行ごとに残高の計算を確かめ、合わない行に
misread_suspectの印を付ける - 【自動】 帳簿の元帳、でんさいの決済予定、手形・小切手の台帳と、金額・日付・区分で1行ずつ照らす
- 【自動】 照らせなかった入金の行について、Azure OpenAI が摘要の振込名義と取引先の一覧から候補を挙げる
- 【自動】 結果を
matched/unrecorded/mismatch/misread_suspectに分けて一覧にする - 【人】 担当が
matched以外の行だけを照合表の画像で確かめ、記帳担当・営業・購買に問い合わせる - 【人】 記帳を直したら、一覧の行に対応を書き、月末の調整表を作る
5番目が、この設計のいちばん大事な工程です。 照合表は1行ごとに残高が印字されているので、前の行の残高+お預り金額−お支払金額=この行の残高 が成り立つはずです。成り立たない行は、金額か残高のどちらかを読み違えています。この印の付いた行は、帳簿と照らす前に人が画像で確かめます。 読み違いを未記帳として扱う失敗が、ここで止まります。
7番目でAIに任せるのは候補を挙げることだけです。 どの取引先の入金かを決めて記帳するのは、経理の記帳担当です。
02今回想定するシステム構成
当座勘定照合表(紙・郵送) │ 口座ごとにスキャン ▼【トリガー】受領フォルダへの保存 Power Automate ▼ Azure AI Document Intelligence(レイアウト モデル prebuilt-layout) │ 表(行・列・セル)、単語の信頼度、Markdown 形式の内容 ▼ 照合の処理(Python、Azure Functions) ├──▶ 銀行ごとの列の対応表で列をそろえ、ページをまたぐ表をつなぐ ├──▶ 残高の計算で読み違いの疑いに印 ├──▶ 元帳(CSV)・でんさいの決済予定・手形と小切手の台帳と照合 └──▶ Azure OpenAI ── 照らせない入金の取引先の候補(構造化出力) ▼ 照合結果の一覧(matched / unrecorded / mismatch / misread_suspect) ▼ 【担当が matched 以外の行を画像で確かめ、記帳と問い合わせ】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(レイアウト モデル) | Google Document AI(Form Parser)、AWS Textract(英文の書類に限る。日本語の照合表には使えない) |
| 生成AI | Azure OpenAI(Microsoft Foundry)の構造化出力 | Claude API、Gemini API |
| 差異計算 | 照合の処理(Python。Azure Functions で動かし、列の整形・残高の検算・照合を行う) | ─ |
| 連携 | Power Automate(受領フォルダの監視と処理の呼び出し、結果の通知) | Make、n8n |
| 保管 | 受領フォルダと照合結果の一覧(社内のファイル共有) | ─ |
会計システムには書き込みません。 照合の処理は元帳のCSVを読むだけで、記帳はこれまでどおり経理の記帳担当が会計システムで行います。 照合結果の一覧は、記帳を直すための作業の一覧です。
読み取りの土台は、Azure AI Document Intelligence のレイアウト モデルです。 公式のドキュメントでは、レイアウト モデルはテキスト、テーブル、選択マーク、構造の情報を抽出し、テーブルについては行と列の数、行スパン・列スパン、各セルの行と列のインデックスと、列見出し(columnHeader)かどうかを返します。単語には信頼度が付きます。日本語は印刷のテキストと手書きのテキストの両方の対応言語に入っています。
事前構築済みの口座取引明細書モデルは使いません。 公式では、このモデルは米国の銀行取引明細書を分析するもの(prebuilt-bankStatement.us)とされています。日本の当座勘定照合表は、レイアウト モデルで表として読み、列の意味は銀行ごとの対応表で決めます。
03どうやって実装するのか
処理の起点を決める
起点は、担当が照合表をスキャンして受領フォルダに保存したことです。 照合表は銀行ごとに届く日が違うので、届いた日にスキャンすれば、その口座の突き合わせはその日のうちに終わります。 月末にまとめるのをやめることが、第3章の(c)への手当てです。
ファイル名は「銀行コード_口座番号の下4桁_対象期間」とします。照合の処理は、ファイル名から銀行の書式と口座を決めます。 ファイル名の形が合わないものは処理せず、担当に通知します。
処理が成功したファイルは処理済みフォルダへ移します。移すのは成功したときだけにします。 受領フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 照合表の画像 | 1口座・1期間の明細のページ(PDF) | 受領フォルダ |
| 読み取り結果 | 表のセル(行・列のインデックス、列見出し)、単語の信頼度、Markdown 形式の内容 | Azure AI Document Intelligence |
| 当座預金の元帳 | 日付、金額、借方・貸方、摘要、相手の取引先、伝票番号 | 会計システムのCSV |
| でんさいの決済予定 | 支払・入金の別、決済日、金額、相手、記録番号 | 銀行のでんさいのサービスから出力した一覧 |
| 手形・小切手の振出の台帳 | 番号、振出日、期日、金額、相手 | 財務部の表計算 |
| 銀行ごとの書式の表 | 列見出しの語と列の意味の対応、摘要の語と区分の対応、日付の書き方 | 財務部が作る |
| 取引先の振込名義の一覧 | 取引先コード、振込のときの名義(カナ) | 取引先マスタ |
質を決めるのは、銀行ごとの書式の表です。 「お支払金額」「支払」「お引出し」はどれも出金の列で、「デンサイ」「電債」「でんさい決済」はどれもでんさいの決済です。この表があれば、列の意味と区分は値で決まり、AIに推し量らせる必要がありません。
手形・小切手の台帳は、電子化の途中のあいだだけ使います。 振出が終わり、期日がすべて過ぎた口座は、台帳との照合を外します。外したあとに手形・小切手の行が照合表に出たら、例外として扱います。
データの取得方法を決める
読み取りは、ワークフローからレイアウト モデル(prebuilt-layout)を呼びます。 出力の形式に outputContentFormat=markdown を指定すると、内容が Markdown で返り、公式では v4.0(2024-11-30)からテーブルが HTML のテーブルとして表され、結合されたセルや複数行の見出しを表せるとされています。照合の処理は、Markdown の表ではなく tables のセルのインデックスで列をそろえます。 見出しの語で列を決めるためです。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 表のセルと行・列のインデックス | tables の cells | 明細の行を組み立てる |
| 列見出しかどうか | セルの kind(columnHeader) | 書式の表と照らして列の意味を決める |
| 単語の信頼度 | pages の words の confidence | 金額のセルの読み取りの確からしさ |
| ページの番号 | 表の boundingRegions | ページをまたぐ表をつなぐ |
ページをまたぐ表は、照合の処理でつなぎます。 公式でも、テーブルが複数のページにまたがる場合は、分析の後にページを1つのテーブルにまとめる後処理を行うことが挙げられています。2ページ目以降の先頭の行が「前頁繰越」なら、その残高を前のページの最後の残高と照らしてからつなぎます。
元帳は、会計システムから当座預金の科目・口座・期間を指定してCSVで出力し、照合の処理が読みます。でんさいの決済予定と手形・小切手の台帳は、表計算から同じように読みます。
AIへ渡す前に整形する
- ファイルの確認 … PDFまたは画像であること、ファイル名の形を確かめます
- ページ数とサイズの確認 … 公式では PDF は最大2,000ページ、有料(S0)レベルで500MBが上限で、Free レベルは最初の2ページだけが処理されます。試すとき以外は有料のレベルを前提にします
- 解像度の確認 … 抽出するテキストの最小の高さは、1024×768の画像で12ピクセル(150dpiで約8ポイント)です。照合表の明細は小さい字で印字されるので、300dpiでスキャンします
- 列をそろえる … 列見出しのセルの語を書式の表で引き、日付・摘要・番号・出金・入金・残高の6つにそろえます。引けない語があれば処理を止めます
- 数字を整える … 「¥」「,」「*」を除き、金額を整数にします。数字以外の文字が残るセルは、そのまま読み違いの疑いにします
- 日付をそろえる … 和暦の月日、西暦の月日を、照合表の対象期間から年を補って日付にします
- 残高を検算する … 行ごとに、前の行の残高+入金−出金=この行の残高かを確かめます
7番目の検算は、ずれた行だけでなく、その前後の行にも印を付けます。 残高の計算がずれるとき、読み違えたのはその行の金額か、その行の残高か、前の行の残高かのどれかです。3行を画像で見れば、どれを読み違えたかはすぐ分かります。
5番目で数字を補わないでください。 「1,2*4,000」のように読めない文字を、前後の行や残高から計算して埋めると、見つけたかった読み違いが消えます。
AIに処理させる
読み取りはレイアウト モデル、照合は照合の処理が規則で行います。 生成AIに任せるのは、照らせなかった入金の行について、摘要の振込名義から取引先の候補を挙げることだけです。
| 照合の段階 | 照らし方 | 担い手 |
|---|---|---|
| でんさいの決済 | 決済日と金額と区分(支払・入金)が一致 | 照合の処理 |
| 手形・小切手 | 番号と金額が一致 | 照合の処理 |
| 振込・口座振替・手数料 | 日付(前後2営業日)と金額が一致し、元帳の行が1つに決まる | 照合の処理 |
| 同じ日・同じ金額が複数 | 摘要の名義と元帳の取引先で絞る | 照合の処理(取引先の名義の一覧) |
| 名義の一覧で引けない入金 | 摘要の名義から取引先の候補を挙げる | Azure OpenAI |
日付に前後2営業日の幅を持たせるのは、帳簿の日付と銀行の処理日がずれるからです。 振込の支払は、社内で支払日として記帳した日と、照合表に出る日が一致しないことがあります。幅を広げすぎると別の取引と対応してしまうので、2営業日で決まらないものは mismatch にして人が見ます。 振込の手数料が本体と別の行で引かれる銀行では、書式の表に「手数料は直前の振込の行と組にする」と書いておき、照合の処理が2行を1組として元帳の1行と照らします。
生成AIに渡すのは、照らせなかった行の摘要と金額と日付、取引先の振込名義の一覧(候補の絞り込みのため、上位の数十社)だけです。 照合表の全体も、口座番号も、残高も渡しません。
| させないこと | 理由 |
|---|---|
| 金額・日付の読み直し | 読み違いは検算と人の目で確かめる |
| 照合の可否の判断 | 金額・日付・区分は値で比べる |
| 取引先の確定 | 記帳担当が決める。AIは候補だけ |
| 仕訳の作成 | 記帳は会計システムで人が行う |
| 読めない数字の補完 | 補うと読み違いが消える |
取引先の候補を生成AIに任せるのは、振込名義の書き方がばらばらだからです。 「カ)ヤマダコウギョウ」「ヤマダコウギヨウ(カ」「ヤマダ工業」、名義が略されたもの、代表者の個人名のもの。名義の一覧の完全一致では引けない入金が、毎月数十行残ります。 ここは規則より、表記の揺れを読めるモデルのほうが向いています。
指示内容を固定する
Azure OpenAI の構造化出力(response_format に JSON スキーマ、strict: true)で呼び、次の指示を渡します。
あなたは財務部で、銀行の当座勘定照合表のうち、帳簿と照らせなかった
入金の行について、振込名義から取引先の候補を挙げる担当です。
【渡すもの】
- 照らせなかった入金の行(日付、金額、摘要の文字列)
- 取引先の一覧(取引先コード、正式な名称、登録済みの振込名義)
【やること】
1. 摘要の文字列から、振込の名義と思われる部分を書き出してください。
2. 取引先の一覧から、名義が近い取引先を最大3つ挙げてください。
3. それぞれ、摘要のどの部分と一覧のどの名義が近いかを書いてください。
【厳守事項】
- 取引先の一覧に無い会社を挙げないでください。
- 近い取引先が無いときは、候補を空にしてください。無理に挙げないでください。
- 金額や日付から取引先を推測しないでください。名義の文字だけで判断してください。
- 摘要の文字列を直したり補ったりしないでください。読めない文字は
そのまま書き写してください。
- 入金の理由(売上の回収、前受け、返金など)を推測しないでください。
- 候補ごとの近さは high / medium / low のどれかで書いてください。
名義が略されている、個人名である、などの理由があれば書いてください。
「金額や日付から推測しない」を入れるのは、モデルが売掛金の残高を推し量ろうとするからです。 「この金額はA社の請求額に近い」は、記帳担当が売掛金の明細で確かめることで、名義の近さと混ぜると、候補の根拠が分からなくなります。
「無理に挙げない」がもう一つの要です。 候補を3つ埋めるよう求めると、関係の無い取引先を low で並べます。空の候補は、名義の一覧に足すべき取引先がある、という知らせになります。
出力形式を固定する
照合の処理は、1口座1期間ごとに次の形の結果を作ります。
{
"bank_code": "",
"account_last4": "",
"period": "",
"opening_balance": 0,
"closing_balance": 0,
"rows": [
{ "row_no": 0, "page": 0, "date": "", "kind": "densai | transfer | debit | fee | bill | check | other",
"description": "", "instrument_no": "", "debit": 0, "credit": 0, "balance": 0,
"balance_check": "ok | ng", "min_confidence": 0,
"status": "matched | unrecorded | mismatch | misread_suspect",
"ledger_ref": "", "candidates": [ { "partner_code": "", "closeness": "high | medium | low", "reason": "" } ] }
],
"summary": { "matched": 0, "unrecorded": 0, "mismatch": 0, "misread_suspect": 0 }
}
1つ目の理由は、balance_check と status を分けられることです。 検算が ng の行は、帳簿と照らす前に misread_suspect にします。担当は、読み違いの疑いの行から先に画像で確かめ、直した値で照合をやり直せます。
2つ目は、kind で照らす先を切り替えられることです。 でんさいはでんさいの決済予定、手形・小切手は台帳、それ以外は元帳。電子化が進んで手形・小切手の行が無くなっても、kind の区分の表を直すだけで済みます。
3つ目は、summary を口座ごとに並べられることです。 毎月、口座ごとの unrecorded の数を見れば、どの銀行の、どの種類の入出金が記帳から漏れやすいかが分かります。
candidates は、Azure OpenAI の構造化出力をそのまま受けます。公式では、構造化出力は JSON スキーマの定義にモデルを従わせるもので、スキーマには required と additionalProperties: false を書きます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受領フォルダ | Power Automate のトリガー | ファイルの保存を検知する |
| Azure AI Document Intelligence | API呼び出し | 表と信頼度を返す |
| 会計システム | 元帳のCSVの出力(読み取りのみ) | 当座預金の元帳を読む |
| でんさいの決済予定・手形と小切手の台帳 | 表計算の読み取り | 照らす先 |
| Azure OpenAI | API呼び出し | 照らせない入金の取引先の候補 |
| 照合結果の一覧 | 表計算への書き出し | 担当が確かめる |
| 担当への通知 | Power Automate のメール | 処理の完了と matched 以外の件数 |
会計システムには書き込みません。 一覧の unrecorded の行を見て記帳するのは記帳担当です。照合結果から仕訳を自動で起こすと、読み違いの行が誤った仕訳として残ります。
通知には、口座ごとの matched 以外の件数だけを書きます。 金額や取引先をメールの本文に書くと、資金の動きがメールの履歴に広がります。担当は通知を見て、一覧を開いて中身を確かめます。
人が確認する
人が見るのは matched 以外の行だけです。 matched の行は件数を流し見るだけにします。
misread_suspectを先に見る … 前後の行を含めて照合表の画像を開き、読み違えた数字を直します。直した値で照合をやり直しますmismatchを見る … 金額か日付が合わない行です。記帳の誤りか、銀行の側の処理日のずれかを確かめますunrecordedを記帳担当へ回す … 候補の取引先を添えて回します。記帳担当が取引先を決めて記帳します- 期末の残高を合わせる … 照合表の最終の残高と元帳の残高の差を、未記帳と未達の行で説明できるかを確かめ、調整表を作ります
1番目を省かないでください。 読み違いの行を unrecorded のまま記帳担当に回すと、存在しない入金を探す問い合わせが営業へ飛びます。
目標は、60枚をならして1枚12分です。 matched 以外の行が1枚に数行という想定で、それより多い月は、スキャンの解像度が足りないか、書式の表が古くなっています。
例外に対処する
| 起きること | 対応 |
|---|---|
| ファイル名の形が合わない | 処理せず担当に通知。受領フォルダに残す |
| 列見出しの語が書式の表に無い | 処理を止め、財務部が表に語を足す。銀行の書式の変更を疑う |
| ページをまたぐ「前頁繰越」の残高が合わない | 両方のページの最後と最初の行を misread_suspect にする |
| 金額のセルに数字以外の文字が残る | misread_suspect。補わない |
| 照合表の最初の残高が前月の最終の残高と合わない | 前月分の照合表が抜けていないかを確かめる |
| 台帳との照合を外した口座に手形・小切手の行が出た | mismatch にして財務の責任者に回す |
| 同じ日・同じ金額の行が元帳に複数あり名義でも決まらない | 照合せず mismatch として人が対応を決める |
| OCRが応答しない | 受領フォルダに残す。処理済みへ移すのは成功時だけ |
6行目は、電子化の途中に特有の例外です。 振出を終えたはずの口座に手形・小切手の決済が出れば、台帳に載っていない振出があったか、銀行の取扱いの変更かのどちらかです。どちらも財務の責任者が知っておくべきことです。
記録を残す
- 照合表の画像と、受け取った日・スキャンした日
- レイアウト モデルが返したJSONの全文
- 照合の結果(
rowsとsummary)と、そのとき使った書式の表の版 - 担当が
misread_suspectの値を直した記録(直す前と後の値) unrecordedの行を記帳した日と伝票番号- 口座ごとの
unrecordedとmisread_suspectの件数の月ごとの推移
4つ目の直した記録は、スキャンの設定を見直す材料になります。 特定の銀行の照合表だけ直しが多いなら、印字の小ささか用紙の色が理由で、解像度を上げるか、その口座をインターネットバンキングの明細に切り替える検討の材料になります。
04実装レベルの3段階
半自動化で、1枚40分が20分程度になります。 元帳との照合は自動になりますが、でんさいと手形・小切手の照合と、照らせない入金の取引先探しが手作業で残ります。本格構成で12分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の期間に、書式の表に足りない語と、検算の合わない銀行が分かります。
05工数削減シミュレーション
導入後 60件 × 12分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の取引銀行に当座預金の口座を持ち、当座勘定照合表が紙で届く商社・製造業・建設業など。でんさいの決済、振込、口座振替、手数料が毎月数百行あり、照合表と帳簿の突き合わせを財務・経理の担当が定規を当てて目で行っている場合。手形・小切手から電子記録債権や振込への切替えの途中で、照合表の中身の構成が月ごとに変わっている場合。
- 取引銀行が1〜2行で、明細をインターネットバンキングのデータで取り込めている場合(読み取りは要りません)。当座預金を解約して普通預金に切り替える予定が決まっている場合。照合表の読み取り結果をそのまま仕訳として会計システムに登録したい場合(この構成は食い違いを一覧にするまでで、記帳は人が行います)。
07最小構成で試す方法
- 先月の照合表から、書式の違う2つの銀行の口座を選び、10枚をスキャンする
- その10枚を手元のAIサービスに1枚ずつ貼り、「明細の表を、日付・摘要・番号・出金・入金・残高の列の表にしてください。読めない数字は補わず、そのまま書いてください」と指示する
- 出てきた表を表計算に貼り、行ごとに残高の検算の式を入れる
- 元帳のCSVと、金額と日付で照らす式を入れる
- 当時の担当のチェックの結果と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 検算がほぼ合い、当時と同じ未記帳が出た | OCRのAPIと照合の処理に進む |
| 検算が合わない行が多い | スキャンの解像度が先。 300dpiで取り直す |
| 読めない数字を補って表にした | 指示で直るか試す。本番は検算で止める設計なので、構成は有効 |
2行目が出ることは珍しくありません。 照合表の明細は小さい字で印字されています。コピー機の既定の設定のスキャンでは、読み取りの下限に近いところに入ります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読み違いが未記帳として回る | 残高の検算で misread_suspect を先に分ける |
| 読めない数字を補ってしまう | 補わず、そのまま疑いの行にする |
| 銀行ごとに列の意味が違う | 列見出しの語の対応表で決める。引けない語は止める |
| ページをまたぐ表が切れる | 「前頁繰越」の残高を照らしてつなぐ |
| 事前構築済みの口座取引明細書モデルを使う | 米国の明細書向け。レイアウト モデルで読む |
| 文字が小さく読み取りの下限に近い | 300dpiでスキャンする |
| 同じ日・同じ金額の行で照合を誤る | 名義で絞り、決まらなければ人に回す |
| 手形・小切手の行の扱いが古いまま | 電子化の進み具合に合わせて区分の表と照合先を直す |
| 照合結果から仕訳を自動で起こしたくなる | 一覧までにする。 記帳は人が行う |
上の2行が、この構成の失敗のほとんどです。 どちらも、読み取りの誤りを帳簿の問題として扱ってしまう失敗です。銀行が印字した残高という、照合表の中の数字どうしで確かめる仕組みが、この構成の土台です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 口座番号、残高、取引先ごとの入出金の金額と日付、振込の名義です。会社の資金の状況と取引先との取引の規模がそのまま分かる情報です。
- 生成AIに渡す範囲を限る … 渡すのは照らせない入金の行の摘要・金額・日付と、取引先の名義の一覧の一部だけです。照合表の全体、口座番号、残高は渡しません
- 会計システムに書き込まない … 読み取りの誤りが帳簿に入る経路を作りません
- 照合表の画像を原本と同じ扱いで保管する … 受領フォルダと処理済みフォルダは、財務部と経理部の担当だけが読めるようにします
- データの置き場所を確かめる … OCRと生成AIのリソースを作るリージョンと、社内の情報管理の規程を合わせて確かめてください
- 取引先の候補を確定として扱わない … 候補の取引先の売掛金を消し込むかは、記帳担当が明細を確かめて決めます
誤りが起きた場合のリスクは、読み違いを未記帳として扱って存在しない取引を探すことと、照合の誤りで記帳の漏れを見逃すことです。 前者は検算で、後者は matched の条件を厳しくし、決まらないものを人に回すことで防ぎます。
10まず何から始めるか
1週目:銀行ごとの書式の表を作る
取引銀行6行の照合表を1枚ずつ並べ、列見出しの語、摘要の語、日付の書き方を書き出して表にします。でんさい、振込、口座振替、手数料、手形・小切手の摘要の語を、銀行ごとにそろえます。
2週目:10枚で試す
書式の違う2行の照合表10枚を、手元のAIサービスで表にし、表計算で検算と元帳との照合をします。検算が合わない行の多さで、スキャンの設定を決めます。
3週目:レイアウト モデルを呼ぶ
Document Intelligence Studio でレイアウト モデルを試し、表のセルと列見出しが取れているかを確かめます。そのうえで、照合の処理から API を呼ぶ形にします。
4週目:元帳との照合までをつなぐ
Power Automate で受領フォルダを見張り、読み取り、検算、元帳との照合、一覧への書き出しまでを作ります。この時点では、でんさいと手形・小切手の照合と取引先の候補は付けません。
2か月目: でんさいの決済予定と手形・小切手の台帳との照合、取引先の候補を足し、matched 以外の行の数を口座ごとに数えます。3か月目以降: 1枚40分が何分になったかを実測し、電子化の進み具合に合わせて台帳との照合を外していきます。照合表が届いた日に突き合わせが終わるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
レイアウト モデル(prebuilt-layout)がテキスト・テーブル・選択マーク・構造を抽出すること。テーブルについて行と列の数、行スパン・列スパン、セルの行・列のインデックス、columnHeader を返すこと。単語の信頼度。outputContentFormat=markdown と、v4.0 でテーブルが HTML で表されること。テーブルが複数ページにまたがる場合に後処理でまとめること。PDF とTIFF が最大2,000ページ(Free は最初の2ページ)、ファイルサイズが S0 で500MB・F0 で4MB、テキストの最小の高さが1024×768の画像で12ピクセル(150dpiで約8ポイント)であること。pages クエリ パラメーター | Microsoft Learn: ドキュメント インテリジェンス レイアウト モデル | 2026-10-13 |
| レイアウト モデルの対応言語に、日本語が印刷のテキストと手書きのテキストの両方で含まれること | Microsoft Learn: 読み取りとレイアウトのドキュメント分析の言語とロケールのサポート | 2026-10-13 |
口座取引明細書モデル(prebuilt-bankStatement.us)が米国の銀行取引明細書を分析するものであること | Microsoft Learn: 口座取引明細書 (米国) 抽出モデル | 2026-10-13 |
Azure OpenAI の構造化出力が指定した JSON スキーマ定義に従わせるもので、strict: true、required、additionalProperties: false を書くこと | Microsoft Learn: Microsoft Foundry モデルで Azure OpenAI で構造化出力を使用する方法 | 2026-10-13 |
| 金融機関によっては9月30日を最終振出期限とし、10月1日以降、原則として当座勘定からの支払いができなくなること。でんさい等の電子記録債権やインターネットバンキングの振込への切替えの呼びかけ | 全国銀行協会: 手形・小切手機能の全面的な電子化に関する周知・広報活動について(2026年6月5日) | 2026-10-13 |
| 2027年度初から電子交換所における手形・小切手の交換を廃止すること。2027年度初から手形・小切手が使用できなくなるものではないが、金融機関の判断で取扱いが変わる可能性があること | 全国銀行協会: 手形・小切手の電子化に関する中間的な評価を踏まえた抜本的な取組み等について(2025年3月26日) | 2026-10-13 |
手形・小切手の取扱いの終了時期と当座勘定の扱いは、取引銀行ごとに確かめてください。 本記事は Microsoft Learn と全国銀行協会の公開ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1405)についてのご相談はこちらから。
