フォーマットがバラバラな請求書をAIで読み取る設計
「取引先ごとに請求書の様式が全部違うので、自動化は無理だと言われた」「一部はうまく読めるのに、別の会社のものになると項目がずれる」——請求書のデータ化を検討すると、ほぼ確実にこの壁に当たります。
結論から言うと、フォーマットの不統一は読み取り性能で解く問題ではなく、業務設計で解く問題です。全社を1本の処理で通そうとするから崩れます。共通の出力形式を先に決め、取引先ごとの差分を対応表として業務側が持つ。この構造にすれば、様式が何十通りあっても運用できます。
株式会社Fyveは中小企業のAI活用を月額で支援しています。この記事では、様式がバラバラな請求書をデータ化する仕組みをどういう構造で組めば崩れないかを、判断基準と工程に落として整理します。
1本の処理で全社を通そうとすると崩れる
最初に手を付けたときに多くの人がやることは、「全部の請求書をまとめてAIに渡して、項目を抜き出してもらう」です。少数の取引先ではこれが動きます。しかし社数が増えると、次のような現象が起きます。
- ある会社の請求書では「前月繰越額」が合計金額として取られる
- 別の会社では税別金額が取られ、また別の会社では税込金額が取られる
- 「請求日」と「支払期日」が入れ替わる
- 明細の列がずれ、数量が単価として読まれる
- 2ページ目の明細が別の請求書として扱われる
これらは「読み取りが不正確だった」のではなく、「どれを取るべきか書類だけでは決まらない」ために起きています。「今回請求額」と「お支払金額」が違う金額で並んでいる請求書は実在し、どちらを会計に入れるかは自社のルールで決まる話です。書類の中に答えがない問いを、読み取りに解かせようとしている状態です。
だから設計の方向は逆になります。書類の側の多様性を受け止める場所を、業務側に用意する。 読み取りには「書類に書いてあることを取る」という単純な仕事だけをさせて、「どれを採用するか」の判断は自社のルールとして外に出します。
「取引先ごとに違う」のは、何が違っているのか
不統一を漠然と捉えていると設計できません。実際に何が違うのかを分解すると、対処の当て方が決まります。
①レイアウト(位置)
合計金額が右下にあるか右上にあるか。明細表が上か下か。ロゴと社名の位置。これは最も対処しやすい差です。 位置に依存せず「ラベルの意味」で取る指示にすれば吸収できます。
②項目名(ラベルの表記)
同じ情報が違う言葉で書かれています。
- 合計 / ご請求金額 / 請求額 / お支払金額 / 今回請求額 / Total
- 請求日 / 発行日 / 締日 / 請求年月日
- 支払期日 / お支払期限 / 入金期限 / 振込期日
- 件名 / 品名 / 内容 / 摘要 / 工事名
これは指示に候補を列挙することで吸収できます。 「合計金額は『合計』『ご請求金額』『請求額』『お支払金額』のいずれかのラベルが付いた金額」と明示すれば、揺れの大半が収まります。
③金額の意味(税込・税別・繰越)
ここが最も厄介です。
- 合計欄が税込のみ/税別のみ/両方併記
- 「前月繰越」「今回請求」「今回御請求額」が併記され、複数の金額が並ぶ
- 相殺や値引きが行われ、請求額と支払額が異なる
- 軽減税率の対象品目が混在し、消費税が複数行に分かれる
これは指示では解決しません。 「自社は税込で管理する」「繰越がある場合は今回請求分のみを取る」という業務ルールを決め、そのルールを取引先ごとに適用する形にします。
④明細の粒度
- 1行1商品の明細がある請求書
- 「〇月分業務委託料 一式」と1行だけの請求書
- 別紙に明細があり、請求書本体には合計だけの形式
- 明細が2ページ以上にわたる形式
明細を取る対象にするかどうかは、取引先ごとに分けて構いません。 一式で1行の請求書から明細を取ろうとしても意味がありません。
⑤単位・数値の書き方
- カンマの有無、円記号の有無
- マイナスの表記(△、▲、括弧、マイナス記号)
- 日付の形式(和暦、西暦、スラッシュ区切り、漢字)
- 数量の単位(式、台、人日、㎡、kg)
これは出力形式の指定で吸収できます。 「金額はカンマと円記号を除いた数値のみ」「日付はYYYY-MM-DD形式」「マイナスはハイフン付きの数値」と指定します。
分解した結果、対処が3種類に分かれる
- 指示の書き方で吸収できるもの——レイアウト、項目名の揺れ、数値の書式
- 業務ルールを決める必要があるもの——金額の意味、明細を取るかどうか
- 取引先ごとの対応表が必要なもの——上記のルールが取引先ごとに違う場合
この整理ができると、「フォーマットがバラバラだから無理」ではなく「この3種類に振り分ければ設計できる」という見通しに変わります。

設計の起点——共通の出力形式を先に決める
ここが設計の中心です。入力の多様性に合わせて処理を分岐させるのではなく、出力の形を1つに固定して、そこへ寄せる。
出力形式(正規形)の作り方
まず「どんな請求書でも最終的にこの形になる」という表の列を決めます。支払管理を目的とする場合の例です。
- 取引先コード——自社マスタのコード。読み取った社名ではなくコードで持つ
- 請求日——YYYY-MM-DD形式
- 請求番号——取引先が付けた番号
- 支払期日——YYYY-MM-DD形式
- 請求額(税込)——自社の管理基準に揃えた金額
- うち消費税——検算用
- 原本ファイル名——確認時に原本へ戻るため
- 原本の種別——紙/PDF
- 読み取り日/確認者/備考
この形が決まっていれば、取引先ごとに何が違っても「最終的にここへ入れる」という目標が明確になります。逆にこの形を決めずに読み取りを始めると、取引先ごとに違う形のデータが溜まり、後から統合できなくなります。
「税込」に揃えるか「税別」に揃えるか
どちらでも構いませんが、先に決めて全社に適用します。これは経理と合意すべき事項です。決めずに始めると、請求書に書いてあるほうの金額が入り、月次の集計で税込と税別が混ざります。
両方を列として持つのも有効です。「請求額(税込)」「請求額(税別)」「消費税」の3列を持てば、どちらの基準でも集計でき、しかも3つの関係が成り立つかで検算ができます。

取引先の判定をどう作るか
取引先ごとにルールを適用するには、まず「この請求書はどの取引先のものか」を確定する必要があります。ここを読み取り結果の社名に依存させると崩れます。
社名の読み取りに依存しない
社名は表記の揺れが最も大きい項目です。「株式会社サンプル商事」「(株)サンプル商事」「サンプルショウジ株式会社」。読み取り結果をそのまま使うと、同じ会社が複数に分かれます。
対策はマスタ照合です。自社の取引先マスタを持ち、読み取った文字列を最も近いものに寄せます。
- 「株式会社」「(株)」「㈱」などの法人格表記を除いて比較する
- スペース・全角半角を揃えて比較する
- 候補が複数ある場合は人が選ぶ(Excelのドロップダウンで足ります)
この形にすると、読み取りが完璧でなくても正しい取引先に着地します。そして出力される取引先コードは常にマスタの値なので、表記の揺れが原理的に発生しません。
判定に使える手がかりを複数持つ
社名だけに頼らず、複数の手がかりで判定できるようにします。
- 登録番号(インボイス制度の適格請求書発行事業者登録番号)——記載があれば最も確実な識別子になります
- 振込先口座——ほぼ固定されているため識別に使えます
- 電話番号・住所——社名より表記が安定しています
- 請求書番号の形式——取引先ごとに付番の癖があります
これらを組み合わせれば、社名が読めなかった場合でも取引先を特定できます。1つの手がかりが失われても止まらない設計にしておくのが、こうした仕組みを長く回すコツです。
ファイル名で判定する運用も有効
技術的に凝った判定を作らず、スキャン時にファイル名へ取引先の略称を入れるという運用もあります。
例: 20260731_サンプルショウジ_01.pdf
人が1回入力するだけで判定が確定するため、判定誤りが構造的に発生しません。枚数が多くない段階では、これが最も確実で安い方法です。自動化の範囲を欲張らず、人が1手だけ入る場所を残すという判断は、この領域では頻繁に正解になります。
項目マッピング表を業務側で持つ
取引先ごとの差分を、Excelの表として自社が持つ——これが設計の核です。ツールの中に閉じ込めず、外に出しておきます。
マッピング表の構成
1行1取引先で、次のような列を持ちます。
- 取引先コード
- 合計金額のラベル——その取引先の請求書で使われている表記(例: 今回御請求額)
- 金額の基準——税込/税別
- 繰越の扱い——繰越欄あり/なし。ある場合はどれを取るか
- 明細を取るか——取る/取らない
- 請求日のラベル
- 支払期日——書類に記載あり/自社の支払サイトから計算
- 特記事項——「2ページ目に明細」「別紙あり」など
この表があると、次の3つが可能になります。
- 指示を取引先ごとに切り替えられる——マッピング表の内容を指示文に差し込む
- 担当者が変わっても引き継げる——ノウハウが人の頭からExcelに移る
- 様式変更に対応できる——1行を書き換えるだけで済む
なぜツールの中に持たせないのか
製品の設定画面に取引先ごとのテンプレートを登録していく方式もあります。それが有効な場面もありますが、自社でも同じ内容をExcelで持っておく価値があります。
- 製品を乗り換えるときに、設定内容が資産として残る
- 設定画面を触れる人が1人しかいない状態を避けられる
- 「なぜこの設定なのか」の理由を備考欄に残せる
ツールは変わりますが、「この取引先の請求書はこう読む」という業務知識は変わりません。これを自社の資産として持っておくかどうかで、数年後の状況が変わります。
最初は全社を埋めない
マッピング表を全取引先分作ろうとすると、着手する前に終わります。件数の多い上位10社だけ埋めて始めます。 それ以外は「共通ルールで読む」とし、うまくいかないものが出たら行を追加していきます。

選択肢を絞って精度を上げる
読み取り結果の確実性を上げる最も効く方法は、候補の数を減らすことです。自由記述として扱わず、自社が持っているリストの中から選ばせます。
マスタ照合が使える項目
- 取引先——取引先マスタ。前述のとおり
- 商品・サービス名——商品マスタ。読み取り結果を候補に寄せる
- 勘定科目・費目——過去の仕訳から、その取引先で使われた科目の履歴を候補にする
- 現場・案件名——進行中の案件リストから選ぶ
このうち勘定科目の推定は効果が大きい項目です。「この取引先からの請求は毎月同じ科目」というパターンが多く、過去の履歴を候補として出すだけで、担当者の入力がほぼ選択だけになります。
指示に候補リストを渡す
読み取らせる段階で、候補リストを一緒に渡すこともできます。
- 「取引先名は次のリストのいずれかです。最も近いものを選んでください: (取引先マスタの一覧)」
- 「品目は次のリストから選んでください。該当がない場合は空欄にしてください」
この形にすると、自由記述より結果が安定します。「該当がない場合は空欄にする」という条件を必ず添えるのが要点です。これがないと、リストの中から無理に近いものが選ばれます。
検算を設計に組み込む
様式がバラバラでも、数字の関係は共通しています。ここが設計上の突破口になります。
共通して成り立つ関係
- 明細の金額合計 = 小計
- 小計 + 消費税 = 合計(税込)
- 各明細の 単価 × 数量 = 金額
- 合計(税別)× 1.1 ≒ 合計(税込)(軽減税率が混在しない場合)
これらをExcelの数式で組んでおけば、様式が何通りあっても同じ検算で誤りを検出できます。取引先ごとに検証ロジックを作る必要はありません。
検算に必要な項目を必ず取る
裏返すと、検算に使う項目は「業務で不要でも取っておく」べきです。合計金額しか業務で使わないとしても、小計と消費税を取っておけば検算が効きます。この3つが揃わないと、合計金額の読み取りが正しいかどうかを機械的に判定する手段がありません。
これは読み取りツールの選定にも関わります。合計金額だけを返して小計・消費税を返さない方式では、この検証が使えません。
検算が使えないケースを把握する
- 軽減税率の対象品目が混在している(税率が複数)
- 相殺・値引き・調整額がある
- 明細が別紙で、請求書本体に合計しかない
- 端数処理の方式が取引先ごとに違う(切り捨て/四捨五入)
これらは検算が成り立たないため、マッピング表に「検算対象外」と記録して、人が確認する対象に入れます。全件を検算で守れるわけではないと分かっていることが重要です。
例外の扱いを先に決める
例外の設計を後回しにすると、運用開始後に止まります。想定される例外を先に列挙し、扱いを決めておきます。
新規取引先の請求書が来た
マッピング表に行がない取引先の請求書です。扱いを決めます。
- 共通ルールで読み、確認は人が必ず行う
- 「新規」フラグを立てて別に集める
- 3回続いたらマッピング表に行を追加する(1回だけの取引先に手間をかけない)
既存取引先の様式が変わった
これは頻繁に起きます。会計システムを入れ替えた、インボイス対応で様式を変えた、担当部署が変わった。
検出方法は検算の失敗です。今まで通っていた取引先で急に検算が合わなくなったら、様式変更を疑います。だからこそ取引先別の検算失敗件数を記録しておくことに意味があります。
1枚に複数の請求が入っている
複数の現場・案件をまとめた請求書で、案件ごとに分けて計上したい場合があります。これは明細を取る対象としてマッピング表に記録し、1枚から複数行を出す扱いにします。
請求書ではないものが混ざる
納品書、見積書、督促状、案内文。スキャンの束に混ざります。「請求書ではないと判定されたものを弾く」工程を入れます。 判定は「合計金額のラベルがあるか」「請求書という文字があるか」程度の単純なもので足ります。弾かれたものは人が目視して振り分けます。
手書きの追記・訂正がある
金額を手で訂正した請求書、値引きが手書きで加えられた請求書。これは機械的な処理から外し、人が原本を確認する扱いにします。訂正印や二重線の意味を読み取り結果から復元することはできません。
紙とPDFが混ざる現実
設計上もう1つ考慮すべきなのが、同じ取引先から紙とPDFの両方が届くという状況です。
ここには法令上の区別も関わります。国税庁の説明では、電子帳簿等保存制度は3つに区分され、紙で受け取った書類をスキャンして電子保存する「スキャナ保存」は希望者のみの任意制度である一方、メール添付やWebダウンロードなど最初から電子でやりとりした「電子取引データ」の保存は法人・個人事業者に対応が求められています。詳細は国税庁「電子帳簿等保存制度特設サイト」で確認してください。自社の書類がどの区分に該当し、どの要件を満たす必要があるかは税務判断です。必ず顧問税理士にご確認ください。
設計としては、この区別を次のように扱います。
- 保存の場所とルールは、法令上の区分に従って分かれてよい——紙の原本とPDFで保存の扱いが違うのは自然なことです
- 業務データとしてのExcelは1つに統合する——出力形式に「原本の種別(紙/PDF)」「原本の保存先」の列を持たせ、月次の突き合わせが1つの表で完結する状態にします
この分離をしておかないと、「紙の分の一覧」と「PDFの分の一覧」が別々に管理され、月次で片方が漏れます。
そもそも受け取り方を揃えるという打ち手
設計を作り込む前に検討すべきことがあります。件数の多い取引先に、PDFでの送付を依頼する。
PDFで受け取れれば、スキャン工程が消えます。しかも電子データは印字が鮮明で、読み取りの条件が安定します。上位数社に依頼するだけで、対象枚数が大きく減ることは珍しくありません。
読み取りの仕組みで解く前に、読み取らなくて済む方法を検討する——順番としてはこれが先に来ます。ただし電子で受け取ると保存の扱いが変わるため、切り替える前に保存方法を税理士に確認しておく必要があります。
段階導入の順番
全社を同時に対応しようとすると着手できません。順番を決めます。
第1段階: 上位数社だけ
件数の多い上位5〜10社に絞ります。多くの会社では、上位10社で全体の半分以上を占めます。ここが動けば工数削減の効果は出ます。
この段階でマッピング表の行を作り、検算を組み、確認工程を回します。残りの取引先は従来どおり手入力のままにします。
第2段階: 共通ルールで通るものを拾う
上位社の対応で得た知見をもとに、共通の指示文を整えます。ここで「特別な設定なしで通るもの」がどれくらいあるかが見えます。多くの場合、標準的な様式の請求書は共通ルールで通ります。
第3段階: 例外を個別に扱う
残ったものを個別に見ます。ここで判断するのは「対応するか、手入力のままにするか」です。年に数枚しか来ない取引先に設定を作る意味はありません。 手入力のままにするという判断は後退ではなく、正しい線引きです。
「全部自動化」を目標にしない
この線引きが最も重要です。8割が自動で通り、2割が手入力のまま——これで工数は大きく減ります。残り2割を自動化しようとすると、設定と例外処理の複雑さが跳ね上がり、仕組み全体の維持コストが効果を上回ります。
Copilotなど汎用のAIで何ができるかを踏まえた上で、範囲を決めるのが現実的です。

何を測るか
フォーマットが多様な環境では、全体の平均値を見ても打ち手が決まりません。取引先ごとに分けて測ります。
- 取引先別の通過率——検算が成立し、人の修正が不要だった割合。どこに問題があるかが分かる
- 取引先別の枚数——通過率が低くても枚数が少なければ優先度は低い
- 1枚あたりの確認時間——手入力の時間と比較する
- 検算失敗の件数と推移——急に増えたら様式変更を疑う
- 項目別の修正件数——どの項目が弱いか。指示の改善対象が決まる
「通過率 × 枚数」で優先順位が決まります。 通過率が3割でも枚数が最多の取引先は、最初に手を付ける対象です。逆に通過率0%でも年2枚なら手入力で構いません。この掛け算をせずに通過率だけを見ると、労力の配分を間違えます。
どこで詰まるか
- 出力形式を決めずに読み取りを始める——取引先ごとに違う形のデータが溜まり、後から統合できない
- 税込・税別の基準を決めていない——経理と合意していないと、集計の途中で作り直しになる
- マッピング表を作らず、担当者の頭の中で処理する——引き継げず、その人が休むと止まる
- 全取引先分のマッピング表を作ろうとする——着手前に終わる。上位10社から始める
- 検算用の項目(小計・消費税)を取っていない——誤りを機械的に検出する手段がなくなる
- 例外の扱いを決めていない——新規取引先・様式変更・請求書以外の混入で運用が止まる
- 「全部自動」を目標にする——最後の2割で複雑さが跳ね上がり、維持できなくなる
- 取引先マスタが整備されていない——照合先がないため表記の揺れを吸収できない
この中で最も多いのが取引先マスタの未整備です。読み取りの仕組みを作る前に、取引先マスタと商品マスタを整える。地味な作業ですが、ここが効きます。
よくある質問
取引先が100社以上あります。マッピング表は現実的ですか
全社分を作る必要はありません。枚数の分布を見てください。多くの会社では上位10〜20社で全体の大半を占めます。その分だけ作り、残りは共通ルールで通し、通らないものは手入力に回す——これで運用は成立します。100社分の設定を作ろうとするから現実的でなくなるだけです。
取引先ごとに指示文を分けるのは手間ではないですか
指示文を全部書き分ける必要はありません。共通の指示文に、マッピング表から差分だけを差し込む形にします。「合計金額のラベルは『◯◯』です」「金額は税込で取ってください」といった1〜2行を追加するだけです。共通部分と差分を分けておけば、共通部分の改善が全社に効きます。
取引先に様式を統一してもらうことはできませんか
自社が発注側で影響力がある場合は、有効な打ち手です。ただし請求書の様式は相手の会計システムに紐づいているため、変更のハードルは高いことが多いです。様式の統一より、送付方法をPDFに揃えてもらう依頼のほうが通りやすいという傾向があります。スキャン工程が消え、印字も鮮明になるため、効果としても十分です。
明細まで取るべきか、合計だけでいいか判断できません
判断軸は「その明細を使って何を決めるのか」です。費目別の予算管理をしている、現場別の原価を出している——こうした用途があるなら明細を取る意味があります。用途がないなら合計だけで構いません。「あとで使えるかもしれないから取っておく」で明細を対象にすると、確認工程の負荷が数倍になります。 必要になった時点で、必要な取引先だけ広げるほうが持続します。
インボイス制度の登録番号も取ったほうがいいですか
取引先の識別に使える有用な項目なので、取得できるなら取っておく価値があります。ただし記載内容が制度の要件を満たしているかどうかの確認は税務判断であり、要件充足の判断は顧問税理士にご確認ください。 私たちが担うのは業務設計とデータ化の仕組みづくりまでで、税務上の判断は行いません。
読み取りが失敗したとき、どこを直せばいいか分かりません
切り分けの順番があります。①スキャン画像を人が見て読めるか(読めないならスキャン設定か原本の問題)②読み取り結果で文字自体は正しいか(正しいなら項目の取り違えなので指示の問題)③検算が合わないのは明細だけか(明細だけなら表構造の問題)。この3段階で切り分ければ、直す場所がほぼ確定します。 切り分けずに製品を変えても改善しません。
様式が変わったことに気づく方法はありますか
検算の失敗を取引先ごとに記録しておくのが最も確実です。今まで通っていた取引先で検算が合わなくなったら、様式変更の可能性が高いです。月次で「取引先別の検算失敗件数」を見るだけで検知できます。 Excelのピボットテーブルで足ります。
この仕組みは誰が作って、誰が維持するのですか
設計とマッピング表の初期作成は外部に頼んでもよいですが、維持は社内でできる形にしておく必要があります。具体的には、マッピング表がExcelで社内にあり、行の追加・修正が経理担当者にできる状態です。ここが外部の設定画面の中だけにあると、様式変更のたびに外部依頼が必要になり、運用が止まります。仕組みを頼む際は「維持を誰がどうやるか」を最初に確認してください。
まとめ
フォーマットの不統一は、読み取り性能では解けません。構造で解きます。
- 共通の出力形式を先に決める——入力の多様性に処理を合わせず、出力を1つに固定して寄せる
- 「何が違うのか」を分解する——レイアウト/項目名/金額の意味/明細の粒度/書式。対処が3種類に分かれる
- 金額の基準(税込・税別)と繰越の扱いは業務ルールとして決める——書類の中に答えがない問いを読み取りに解かせない
- 取引先ごとの差分はExcelのマッピング表で自社が持つ——ツールの中に閉じ込めない。引き継げる形にする
- マスタ照合で候補を絞る——読み取りが完璧でなくても正しい値に着地させる
- 検算を組み込む——様式が何通りあっても、数字の関係は共通。小計と消費税は業務で不要でも取る
- 例外の扱いを先に決める——新規取引先・様式変更・請求書以外の混入
- 上位10社から段階導入する。全部自動化を目標にしない
そして最初に検討すべきなのは、件数の多い取引先にPDFでの送付を依頼することです。読み取る仕組みを作り込むより、読み取らなくて済む範囲を広げるほうが効きます。
なお、紙とPDFで保存の扱いが変わる点については、必ず顧問税理士に確認してください。制度の要件充足の判断は税務の領域です。
御社の業務に合わせたCopilot導入・定着支援
「ライセンスを配ったのに使われない」を終わらせる。
業務の棚卸しから、効く業務の切り分け、社内への定着まで一貫して支援します。