Media > AI活用ユースケース > 営業 > 融資の申込で受け取る決算書を読み取って検算し、財務分析シートへの転記を済ませる

融資の申込で受け取る決算書を読み取って検算し、財務分析シートへの転記を済ませる

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

取引先から受け取った決算書の貸借対照表・損益計算書を読み取り、合計と小計が合うかを機械で検算します。通った数値の勘定科目を財務分析シートの行に当てはめ、転記まで済ませます。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
その他/商社/金融
対象部門
営業/財務
対象業務
データ入力・転記/内容確認・チェック
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
100h/月
AI導入後
30h/月
想定削減
70%
年間削減
840h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 取引先から決算書を受け取り、支店でスキャンしてPDFにする
  2. 貸借対照表を見ながら、分析シートの資産・負債・純資産の行に数字を打ち込む
  3. 損益計算書、販売費及び一般管理費の内訳、製造原価報告書を同じように打ち込む
  4. 科目名が分析シートの行名と合わないものは、どの行に入れるかを担当者が決める
  5. 分析シートの合計が決算書の合計と合うかを確かめ、合わなければ打ち間違いを探す
  6. 分析シートを稟議システムに添付し、審査の担当へ回す
導入後(After)
  1. 人決算書をスキャンし、取引先の番号と決算期を付けて受付フォルダに保存する
  2. 自動定時実行のスクリプトが新しいファイルを見つけ、形式・ページ数・解像度を確かめる
  3. 自動Azure AI Document Intelligence のレイアウトモデルが、表の行・列・セルと信頼度を返す
  4. 自動スクリプトが表を科目名と金額の行データに直し、単位と符号(△、括弧)をそろえる
  5. 自動スクリプトが、小計・合計・貸借の一致を検算し、合わない範囲に印を付ける
  6. 自動検算を通った科目名を、取引先ごと・自行共通の対応表と突き合わせる。一致したものは対応表の行に入れる
  7. 自動一致しなかった科目名だけを Claude API に渡し、分析シートの行の候補と理由を付けさせる
  8. 自動分析シートの様式に数値を入れた下書きと、確認用の一覧を作る
  9. 人担当者が、検算の合わない範囲と、行が候補止まりの科目だけを確かめる
  10. 人確かめた分析シートを稟議システムに添付し、審査へ回す
各工程の詳しい説明を読む
  1. 取引先から決算書を受け取り、支店でスキャンしてPDFにする
  2. 貸借対照表を見ながら、分析シートの資産・負債・純資産の行に数字を打ち込む
  3. 損益計算書、販売費及び一般管理費の内訳、製造原価報告書を同じように打ち込む
  4. 科目名が分析シートの行名と合わないものは、どの行に入れるかを担当者が決める
  5. 分析シートの合計が決算書の合計と合うかを確かめ、合わなければ打ち間違いを探す
  6. 分析シートを稟議システムに添付し、審査の担当へ回す

(a)打ち間違いは合計が合わないところで初めて分かる。 5番目で合計がずれると、どの行で間違えたかを、数十行の中から探し始めます。 1桁の打ち間違いを探す時間が、打ち込みより長くかかることがあります。

(b)科目の当てはめ方が担当者ごとに違う。 「未払法人税等」を流動負債のどの行に入れるか、「保険積立金」を投資その他の資産に入れるか。同じ取引先の同じ科目が、前期と今期で違う行に入っていることがあります。 前期との比較が意味を失います。

(c)単位を取り違える。 「単位:円」「単位:千円」の表示は表の隅に小さく書かれています。分析シートは千円単位なので、円の決算書をそのまま打ち込むと1,000倍になります。

(d)打ち込みが融資の回答を遅らせる。 3期分の打ち込みに2時間以上かかり、審査に回るのが申込から数日後になります。 取引先から見れば、決算書を渡してから連絡が来るまでの時間です。

  1. 【人】 決算書をスキャンし、取引先の番号と決算期を付けて受付フォルダに保存する
  2. 【自動】 定時実行のスクリプトが新しいファイルを見つけ、形式・ページ数・解像度を確かめる
  3. 【自動】 Azure AI Document Intelligence のレイアウトモデルが、表の行・列・セルと信頼度を返す
  4. 【自動】 スクリプトが表を科目名と金額の行データに直し、単位と符号(△、括弧)をそろえる
  5. 【自動】 スクリプトが、小計・合計・貸借の一致を検算し、合わない範囲に印を付ける
  6. 【自動】 検算を通った科目名を、取引先ごと・自行共通の対応表と突き合わせる。一致したものは対応表の行に入れる
  7. 【自動】 一致しなかった科目名だけを Claude API に渡し、分析シートの行の候補と理由を付けさせる
  8. 【自動】 分析シートの様式に数値を入れた下書きと、確認用の一覧を作る
  9. 【人】 担当者が、検算の合わない範囲と、行が候補止まりの科目だけを確かめる
  10. 【人】 確かめた分析シートを稟議システムに添付し、審査へ回す

5番目が、この設計の分かれ目です。 読み取りを信用するかどうかを、AIの自信ではなく、決算書に印字された合計という、外にある数字で決めます。検算を通った範囲は、金額について人が見直す必要がありません。

6番目と7番目を分けているのも意図してのことです。 対応表で引ける科目はスクリプトが引き、AIに渡すのは初めて出てきた科目名だけにします。 当てはめ方が前期とそろい、外へ渡すデータも減ります。

02今回想定するシステム構成

構成図
決算書(紙のコピー → スキャンしたPDF)
   │  取引先の番号と決算期を付けて受付フォルダへ
   ▼【トリガー】1時間おきの定時実行
Python ── 形式・ページ数・解像度・パスワードの確認
   ▼
Azure AI Document Intelligence(レイアウトモデル prebuilt-layout)
   │   表の行・列・セル、結合セル、見出しのセル、語ごとの信頼度
   ▼
Python ── 行データに整形(科目名・当期・前期)、単位と符号をそろえる
   ▼
Python ── 検算(内訳の和=小計、小計の和=合計、資産合計=負債純資産合計)
   ├──▶ 合わない範囲 ──▶【人が原本と見比べる】
   ▼
Python ── 対応表で科目名を引く(取引先ごと → 自行共通)
   ├──▶ 引けない科目名 ──▶ Claude API ── 分析シートの行の候補と理由
   ▼
Python ── 分析シートの下書きと確認用の一覧
   ▼
【人が合わない範囲と候補を確認】──▶ 稟議システムへ添付
役割想定する製品代替候補
OCRAzure AI Document Intelligence(レイアウトモデル)Google Document AI、AWS Textract(日本語に非対応のため英文の決算書に限る)
生成AIClaude API(科目名の当てはめの候補と理由)OpenAI API、Gemini API
差異計算Python(小計・合計・貸借の検算)表計算ソフトの数式
連携Python(受付フォルダの監視、対応表の照合、分析シートへの書き込み)表計算ソフトのマクロ
保管行内のファイルサーバー(受付フォルダと処理済みフォルダ)文書管理システム

財務分析シートと稟議システムは、新しく足すものではありません。 この構成は分析シートの下書きを作るまでで、稟議システムへの添付は担当者が行います。 対応表は、過去の分析シートと決算書の組を並べて作ります。

OCRに Azure AI Document Intelligence のレイアウトモデルを選ぶのは、日本語の表を構造ごと取れるからです。 レイアウトモデルは、テキスト、表、選択マーク、文書の構造を抽出するモデルで、印刷された日本語と手書きの日本語の両方が対応言語に含まれています。 表は行数・列数と、セルごとの行・列の位置、行や列をまたぐ結合セル(rowSpan、columnSpan)、見出しのセルかどうか(columnHeader)が返ります。

入力できるのは、PDF、画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)、Office の文書などです。 PDFとTIFFは最大2,000ページまで(Free レベルは最初の2ページのみ)、ファイルサイズは有料(S0)レベルで500MB、Free(F0)レベルで4MBです。パスワードでロックされたPDFは、提出前にロックを解除する必要があります。

検算と整形をAIにさせないことが、この構成の要です。 足し算はスクリプトなら必ず同じ答えになり、どの小計が何円ずれているかを行で示せます。

03どうやって実装するのか

Step1

処理の起点を決める

受付フォルダを1時間おきに見に行き、新しいファイルがあれば処理します。 決算書の受け取りは支店の営業時間中に散らばって起きるので、保存した瞬間に動かす必要はありません。 1時間以内に下書きが出れば、その日のうちに審査へ回せます。

処理の単位は「取引先・決算期」の1件です。 3期分をまとめて受け取ったときは、担当者が期ごとにファイルを分けて保存します。ファイル名に取引先の番号と決算期を入れる決まりにし、スクリプトはその名前で分析シートの列を決めます。

処理が終わったファイルは処理済みフォルダへ移します。 移すのは最後まで成功したときだけです。受付フォルダに残っている数が、そのまま未処理の数になります。

Step2

入力データを集める

データ中身取得元
決算書のPDF貸借対照表、損益計算書、販売費及び一般管理費の内訳、製造原価報告書受付フォルダ
読み取り結果表の行・列・セル、結合セル、見出しのセル、語ごとの信頼度Azure AI Document Intelligence
取引先ごとの対応表その取引先の科目名と、分析シートの行の対応(過去の分析シートから作る)対応表のファイル
自行共通の対応表よく出る科目名と、分析シートの行の対応本部の審査が整える表
分析シートの行の一覧行の名前、属する区分(流動資産・固定負債など)、行の説明分析シートの様式
前期の分析シート同じ取引先の前期の数値過去の分析シート

質を決めるのは、2つの対応表です。 取引先ごとの表があれば、前期と同じ科目名は前期と同じ行に入ります。自行共通の表は、担当者ごとに違っていた当てはめ方を、本部の決めた1つにそろえるためのものです。

前期の分析シートを持つのは、読み取りの二重の確かめのためです。 多くの決算書には前期の数字も並んで印字されています。読み取った前期の数字が、前期の分析シートと一致すれば、その列は正しく読めています。

Step3

データの取得方法を決める

読み取りは、スクリプトからレイアウトモデル(prebuilt-layout)を呼ぶだけです。 返ってくる結果の中から、次のものを取ります。

取るものどこから何に使うか
表の大きさ表ごとの rowCount、columnCount表を行データに直す枠
セルの位置と文字cells の rowIndex、columnIndex、content科目名と金額
結合セルcells の rowSpan、columnSpan「資産の部」のような区分の見出しの範囲
見出しのセルcells の kind(columnHeader)「当期」「前期」の列を決める
語ごとの信頼度pages の words の confidence金額のセルの読み取りに自信があるか
段落paragraphs表の外にある「単位:千円」を拾う

表の見出しの列で、当期と前期を決めます。 「当期」「前期」「第25期」「令和7年3月期」と書き方はまちまちです。見出しの文字を当期・前期に対応させる一覧を持ち、決算期と照らして決めます。

表がページをまたぐときは、ページごとに別の表として返ることがあります。 公式のドキュメントも、複数ページにまたがる表は分析の後に1つの表へ組み直す後処理を案内しています。スクリプトで列の並びが同じ表をつなぎ、1つの貸借対照表として扱います。

貸借対照表が左右に並ぶ書式にも注意します。 左に資産の部、右に負債・純資産の部がある書式は、1つの表の中に科目名と金額の列が2組あります。列の見出しと結合セルの位置で2組に分けてから、行データにします。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … PDFまたは画像であることを確かめます。表計算ソフトのファイル(XLSX)で届いた決算書は、表の分析が行われないため、読み取りに回さずそのまま数値として取り込みます
  2. ページ数とサイズの確認 … PDFとTIFFは最大2,000ページ、有料(S0)レベルで500MBです。決算書全体を渡さず、pages の指定で貸借対照表と損益計算書のページだけを読ませます
  3. 画像の寸法と解像度の確認 … 50×50ピクセルから10,000×10,000ピクセルの間で、文字の高さは1024×768の画像で最小12ピクセル(150dpiで約8ポイント)です。内訳の小さな文字が下限を割らないよう、スキャンは解像度を上げて取ります
  4. ロックの解除 … パスワードでロックされたPDFは、提出前に解除が要ります
  5. 金額の正規化 … 「,」を取り、「△」「▲」と括弧を負の数に直します
  6. 単位の決定 … 表の外の段落から「単位:円」「単位:千円」を拾い、分析シートの千円単位にそろえます。見つからなければ、合計の桁数と前期の分析シートから推定せず、人に回します
  7. 行の種類の判定 … 「資産の部」「流動資産」のような区分の見出しと、「合計」「計」の行に印を付けます

6番目を軽く見ないでください。 単位を取り違えると、検算はすべて通ります。 1,000倍になっても合計どうしの関係は崩れないからです。単位だけは、検算では見つけられない誤りです。 だから推定させず、見つからなければ必ず人に回します。

Step5

AIに処理させる

させるのは、対応表で引けなかった科目名について、分析シートのどの行に入れるかの候補と、その理由を書くことだけです。 読み取り、整形、検算は、AIより前に終わっています。

見るものさせること判断できないときの扱い
科目名分析シートの行の一覧から、入れる行の候補を1つ選ぶ近い行が無ければ no_match
属する区分決算書でその科目がある区分(流動負債など)の中から選ぶ区分が決まらなければ no_match
自行共通の対応表似た科目名の当てはめ方を参考にする参考にならなければ使わない
行の説明行に何を入れるかの自行の決まり決まりに合わなければ候補にしない

区分をまたがせないことが大事です。 決算書で流動負債にある「未払費用」を、分析シートの固定負債の行に入れる候補は出させません。区分は決算書の表の構造から決まっており、AIの判断より確かです。

match_type を3つに分けます。 自行共通の表に表記違いの同じ科目があったか(table_similar)、科目名の意味から推し量ったか(inferred)、手がかりが無いか(no_match)で、担当者の確認の重さが変わります。

させないこと理由
金額の修正検算の意味が無くなる。合わない事実が消える
単位の推定検算で見つけられない誤りになる。人が決める
区分をまたぐ当てはめ決算書の構造に反する
分析シートに無い行の作成様式が崩れ、稟議に添付できなくなる
財務の評価・格付の判断審査の仕事で、この構成の範囲外

1行目がいちばん起きやすい失敗です。 検算が合わない範囲をAIに渡して「直して」と頼むと、合うように数字を1つ書き換え、それらしい理由まで付けて返します。 だから、合わない範囲はAIに渡しません。

Step6

指示内容を固定する

あなたは金融機関の法人営業で、取引先の決算書の科目を、
自行の財務分析シートの行に当てはめる立場です。
渡された科目はすべて、検算を通って金額が確定したものです。
あなたが決めるのは、分析シートのどの行に入れるかの「候補」だけです。

【渡すもの】
- 科目:行番号、決算書の区分(流動資産・流動負債など)、科目名
- 分析シートの行の一覧:行の名前、属する区分、行の説明
- 自行共通の対応表:よく出る科目名と、入れる行

【match_type の選び方】
- table_similar … 自行共通の対応表に、表記の違いを除いて同じ科目がある
- inferred ...... 対応表には無いが、科目名の意味から行を推し量れる
- no_match ...... 手がかりが無く、候補を出せない
迷ったときに table_similar を選ばないでください。

【厳守事項】
- 金額は渡していません。金額について何も書かないでください。
- 行は「分析シートの行の一覧」の中からだけ選んでください。
  一覧に無い行を作らないでください。選べなければ空欄にしてください。
- 決算書の区分と同じ区分の行だけを選んでください。
  流動負債の科目を、固定負債の行に入れないでください。
- 1つの科目に候補を2つ以上付けないでください。
- 科目名を書き換えないでください。渡された文字列をそのまま返してください。
- reason には、判断の根拠を一文で書いてください。
  table_similar のときは、根拠にした対応表の科目名をそのまま写してください。
- 確定した当てはめとして書かないでください。すべて候補です。
- 科目名が「その他」「雑」のように中身の分からないものは、
  同じ区分の「その他」の行を候補にし、note に「中身の確認が要る」と書いてください。

【科目】{items}
【分析シートの行の一覧】{sheet_rows}
【自行共通の対応表】{common_table}

「金額は渡していません」を最初に書いているのは、渡さないことそのものが対策だからです。 当てはめに金額は要りません。渡さなければ、書き換えることもできません。 金額は、検算を通った行データの側にだけあります。

「区分をまたがない」を明記しないと、名前の似た行に引っ張られます。 「長期未払金」を流動負債の「未払金」の行に入れるような誤りです。区分は決算書の表で決まっているので、AIの側の判断の自由を狭めておきます。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude API の構造化出力を使い、output_config.format に type: "json_schema" とスキーマを渡します。スキーマに従った、解析できるJSONが返ります。 オブジェクトには additionalProperties: false を付けます。

{
  "statement_id": "C01234-2026-03",
  "items": [
    {
      "row_no": 0,
      "section": "current_liabilities",
      "account_name": "",
      "sheet_row_candidate": "",
      "match_type": "table_similar | inferred | no_match",
      "reason": "",
      "note": ""
    }
  ]
}

AIの出力とは別に、検算の結果をスクリプトが持ちます。

項目値意味
sum_checkok内訳の和が小計と、小計の和が合計と一致
mismatch一致しない。読み取りの誤りとして人へ
balance_checkok / mismatch資産合計と負債・純資産合計の一致
prior_checkok / mismatch / none読み取った前期の数字と、前期の分析シートの一致
low_confidencetrue / false金額のセルの語の信頼度が決めた値を下回る
row_statusready / needs_mapping / needs_reread転記してよい/行が候補止まり/原本と見比べる

mismatch の出方で、どこを読み違えたかの見当が付きます。 小計が1つだけ合わなければ、その内訳のどれか1行です。差額が9の倍数なら、隣り合う桁の入れ違いであることが多く、確認する場所が絞れます。

スキーマでは金額の範囲を縛りませんが、ここではそもそも金額を渡していません。 構造化出力は minimum や maximum といった数値の制約をサポートしていないので、金額をAIの出力に載せない設計のほうが確かです。 返ってきた account_name が渡した文字列と同じかは、スクリプトが行番号で突き合わせます。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダスクリプトの定時実行新しい決算書のPDFを見つける
Azure AI Document IntelligenceAPI呼び出し表の行・列・セル、信頼度を返す
対応表・分析シートの行の一覧ファイルの読み取り科目名と行の対応を引く
Claude APIAPI呼び出し(構造化出力)引けなかった科目名に行の候補を付ける
財務分析シート様式への書き込みready の数値を入れた下書きを作る
稟議システム担当者が添付する確認を終えた分析シートだけ

稟議システムへは書き込みません。 この構成が出すのは分析シートの下書きまでです。添付を自動にすると、検算の合わない範囲が混ざったまま審査に回る経路ができます。

分析シートには、ready の行と、担当者が確認を終えた行だけを入れます。 needs_reread と needs_mapping の行は、分析シートの該当欄を空けたまま色を付け、埋まっていない欄がそのまま未確認の印になるようにします。

対応表は読み取りだけです。 担当者が候補を採用しても、自動では対応表に足しません。月に1回、本部の審査が採用された候補を見直し、自行共通の表に足すものを決めます。

Step9

人が確認する

人が開くのは needs_reread と needs_mapping の行だけです。 ready の行は件数を流し見ます。全行を見直す設計にすると、第10章の30.0時間には収まりません。

  1. 単位を先に確かめる … 表の外から拾った単位と、分析シートの単位が合っているかを原本で見ます。単位だけは検算で見つけられません
  2. needs_reread を原本と見比べる … 合わない小計の内訳を、原本の該当ページと並べて読みます。正しい数字を打ち直し、検算が通るかをもう一度確かめます
  3. needs_mapping の候補を確かめる … no_match から、inferred、table_similar の順に見ます。「その他」の科目は、取引先に中身を聞く一覧に入れます
  4. 候補を覆したら記録する … どの科目名を、どの行に入れたかを残します。対応表の見直しの材料です

2番目で、AIに読み直させないでください。 同じ原本を同じ仕組みで読めば、同じ所で間違えます。読み直しは、原本を見る人の仕事です。

目標は、120件をならして1件15分です。 合わない範囲が1件に1〜2か所、候補止まりの科目が数行という想定です。それより多い月は、スキャンの解像度が落ちているか、対応表が古くなっています。

Step10

例外に対処する

起きること対応
単位の表示が見つからない推定しない。人が原本で決める
検算が合わない範囲があるneeds_reread。AIに渡さない
貸借が一致しない左右の組の分け方の誤りか、ページの抜け。原本と見比べる
表がページをまたぐ列の並びが同じ表をつないで1つにする。つなげなければ人へ
前期の数字が前期の分析シートと違う読み取りの誤りか、前期の修正か。どちらかを決めつけず人へ
手書きで修正された決算書手書きの日本語も対応言語だが、修正の跡があるものは原本を確かめる
表計算ソフトのファイルで届く表の分析が行われない。読み取りに回さず、数値として取り込む
パスワード付きのPDF提出前に解除が要る。取引先に解除したものを頼む
一覧に無い行が返る空欄として扱い、needs_mapping にする
APIが応答しない受付フォルダに残す。処理済みへ移すのは成功時だけ

上から3行目までが大半を占めます。 単位と検算と貸借の3つで、読み取りの誤りのほとんどは、転記の前に止まります。

Step11

記録を残す

  • 元の決算書のPDFと、受け取った日時・取引先・決算期
  • Document Intelligence が返した結果の全文
  • 行データ、単位の決定の根拠、検算の結果(sum_check、balance_check、prior_check)
  • AIに渡した科目と、返ってきたJSONの全文。そのとき使った対応表の版
  • 人が数字を打ち直した記録と、候補を覆した記録
  • 稟議システムに添付した分析シートと、添付した日時
  • 取引先ごとの needs_reread の発生率

4つ目で対応表の版を残すのは、当てはめ方が後から変わるためです。 審査で「なぜこの行に入れたか」を問われたとき、当時の表が残っていないと説明できません。

04実装レベルの3段階

最小構成:決算書を手でAIの画面に貼り、表にさせ、検算の式は自分で入れる / 読み取りの下書き
半自動化:上記+レイアウトモデルをスクリプトから呼び、検算まで自動で行う / 読み取りと検算
本格構成:上記+対応表の照合、行の候補、分析シートの下書きまで自動で出す / 読み取りから分析シートの下書きまで

最小構成では件数がさばけません。 1件ずつ貼り付けるので、月120件には使えません。確かめるための段階です。 半自動化で、①②の打ち込みと④の探索がほぼ無くなります。 ただし科目の当てはめは担当者の手に残ります。本格構成で③が候補の確認に変わり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の検算結果を1か月見ると、読み直しの多い書式と、単位の拾えない書式が先に分かります。そこを直してから本格構成に進むほうが、確認の手間が減ります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
12 名
月間件数
120 件
1件あたり現在時間
50 分
1件あたり導入後時間
15 分
現在  120件 × 50分 ÷ 60 = 100 時間/月
導入後 120件 × 15分 ÷ 60 = 30 時間/月
月間削減時間
70h
削減率
70%
年間削減時間
840h
年間金額換算(時間単価3,500円)
294万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 中小企業への融資が多く、決算書を紙やスキャンのPDFで受け取って、担当者が財務分析シートへ手で打ち込んでいる地域金融機関の法人営業部門。取引先の決算期が月ごとに分散していて、融資の申込と年次の見直しで毎月一定数の決算書が届く場合。取引先の与信管理のために決算書を集めている商社やリース会社の審査部門にも当てはまります。
向いていない
  1. 取引先の大半が会計ソフトのデータや電子的な財務データを出せ、紙の決算書を読む必要がない場合。決算書の受け取りが月に数件で、手入力で足りる場合。なお、融資の可否や格付の判断、粉飾の見きわめは、この構成では代替できません。

07最小構成で試す方法

  1. 先月受け取った決算書から5件を選ぶ(うち1件は、コピーが薄く読みにくいものを入れる)
  2. 手元のAIサービスの画面に、貸借対照表のページの画像を貼り付ける
  3. 「この貸借対照表を、区分・科目名・当期・前期の表にしてください。読めない文字は推測せず『?』にしてください。単位の表示があればそのまま書いてください」と指示する
  4. 出てきた表を表計算ソフトに貼り、小計と合計、資産合計と負債・純資産合計が合うかの式を自分で入れる
  5. 式が合わない所を、当時の手入力の分析シートと見比べる

4番目は必ず自分の手でやってください。 AIに検算まで頼むと、合わない所をAIが自分で直した表が返ってくることがあります。 試したいのは、検算で読み取りの誤りが拾えるかどうかです。

出てきた内容判断
式が合わない所と、読み間違いの所が一致したOCRのAPIとスクリプトの連携に進む
式が合わない所が多すぎるスキャンの解像度が先。 取り直して試す
読めない文字を推測で埋めた指示の書き方で直る。構成は有効

2行目が出ることは珍しくありません。 失敗ではなく、これまで打ち間違いの探索に時間がかかっていた理由が1つ分かったということです。

08実装時につまずきやすいポイント

問題対策
検算が合わない範囲をAIが直してしまう合わない範囲はAIに渡さない。 そもそも金額を渡さない
単位を取り違えても検算が通る単位は推定せず、見つからなければ人へ
左右に並ぶ貸借対照表を1組として読む見出しと結合セルの位置で2組に分ける
ページをまたぐ表が別々に返る列の並びが同じ表をつなぐ後処理を入れる
「△」や括弧の負の数を正の数で入れる金額の正規化で符号をそろえる
当期と前期の列を取り違える見出しの一覧と決算期で決める
区分をまたいで当てはめる決算書の区分と同じ区分の行だけを選ばせる
一覧に無い行が出て様式が崩れる行の一覧を渡し、一覧の外は空欄として扱う
表計算ソフトのファイルを読み取りに回す表の分析が行われない。数値として取り込む
候補を対応表に自動で足してしまう月に1回、本部の審査が見直して足す

上の2行が、この構成の失敗のほとんどです。 1行目は「読み取った数字を確かめずに信用する」ことから、2行目は「確かめ方の届かない誤りがある」ことを忘れることから起きます。検算の物差しと、その物差しで測れないものの両方を設計に入れておくかどうかで、運用に乗るかが決まります。

下の2行も、同じくらい早く効いてきます。 候補を確かめずに対応表へ足すと、誤った当てはめ方が翌期から「過去の当てはめ」として定着します。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 取引先の決算書の数値、役員への貸付金や役員報酬、借入先ごとの残高など、取引先の経営の中身そのものです。金融機関として守秘義務のある情報です。

  1. 外部へ渡す範囲を段階ごとに絞る … OCRには決算書のページが渡りますが、生成AIに渡すのは対応表で引けなかった科目名と区分だけです。金額も取引先名も渡しません
  2. データを処理する地域と契約を決める … OCRのサービスをどの地域で使うかを、自行の外部委託の規程と、情報の取り扱いの方針に照らして決めます
  3. 取引先への説明を決めておく … 決算書を外部のサービスで読み取ることを、取引先との取り決めや、個人情報・取引情報の取り扱いの説明にどう書くかを、先に決めておきます
  4. この構成は審査の判断を代替しません … 融資の可否、格付、決算書の数字が実態を表しているかの見きわめは、審査の担当者が行うことです。 この構成が出すのは、検算を通った数値と当てはめの候補だけです
  5. 保存期間を決める … 決算書のPDF、OCRの結果、AIとのやり取りを、それぞれいつまで残すかを自行の規程で決めます。 途中の結果を無期限に残さないでください
  6. 受付フォルダの権限を分ける … 支店の担当者は自分の支店の取引先のファイルだけを置け、ほかの支店の取引先の決算書が見えないようにします

誤りが起きた場合のリスクは、読み間違いのまま審査に回ることと、当てはめの誤りが前期との比較をゆがめることの2つです。 前者は検算の合わない範囲をAIに直させると起き、後者は候補を確かめずに対応表へ足すと起きます。どちらも「AIの出力を事実として扱う」ことから出ているので、そこだけは設計で守ります。

10まず何から始めるか

1週目:自行共通の対応表を作る

本部の審査が、過去1年分の分析シートと決算書の組から、よく出る科目名と分析シートの行の対応表を作ります。同じ科目名が違う行に入っているものが見つかったら、それが第3章の(b)です。当てはめ方を1つに決めます。

2週目:5件で試す

第8章のとおり、手元のAIサービスで貸借対照表を表にし、検算の式を自分で入れて、合わない所が読み間違いの所と一致するかを確かめます。あわせて、単位の表示がどこに書かれているかを書式ごとに見ておきます。

3週目:スキャンの決まりを作る

支店のスキャナの設定を決めます。解像度、1社1期で1ファイル、ファイル名に取引先の番号と決算期、という決まりを1枚にまとめて支店に配ります。

4週目:読み取りから検算までをつなぐ

スクリプトで受付フォルダを見に行き、レイアウトモデルを呼び、行データにして検算するところまで作ります。この時点では当てはめの候補を出さず、sum_check と balance_check の一覧だけを見ます。

2か月目: 対応表の照合と Claude API の候補を足し、分析シートの下書きを出します。needs_reread と needs_mapping の行数を毎週数えます。3か月目以降: 対象の支店を広げ、1件50分が何分になったかを実測します。書式ごとの needs_reread の発生率を見て、スキャンの決まりと対応表を見直した時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-29/最終更新:2026-09-29
確認した内容情報源確認日
レイアウトモデル(prebuilt-layout)がテキスト、表、選択マーク、文書の構造を抽出すること。入力がPDF、画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)、Office の文書などであること。PDFとTIFFが最大2,000ページ(Free レベルは最初の2ページ)、ファイルサイズがS0で500MB、F0で4MBであること。画像が50×50から10,000×10,000ピクセル、文字の最小の高さが1024×768の画像で12ピクセル(150dpiで約8ポイント)であること。パスワードでロックされたPDFは提出前に解除が要ること。表が行数・列数、セルの行・列の位置、行スパン・列スパン、columnHeader を返すこと。複数ページにまたがる表は分析後に1つの表へ組み直す後処理が案内されていること。XLSX の入力では表の分析が行われないこと。語ごとに信頼度が付くこと。pages の指定で特定のページだけを抽出できることMicrosoft Learn: ドキュメント レイアウト分析2026-09-29
レイアウトモデルの対応言語に、印刷された日本語と手書きの日本語が含まれることMicrosoft Learn: Language support for Read and Layout2026-09-29
構造化出力が output_config.format に type: "json_schema" とスキーマを渡して使い、スキーマに従ったJSONを返すこと。オブジェクトに additionalProperties: false が必要なこと。minimum や maximum などの数値の制約がサポートされないことClaude Docs: Structured outputs2026-09-29

融資の可否、格付、決算書の数字が実態を表しているかの判断は、審査の担当者が行ってください。 本記事は Microsoft と Claude の公式ドキュメントで確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0372)についてのご相談はこちらから。

AI活用について相談する
目次