複数社の見積書を突合して比較表を作る
3社から届いた様式のばらばらな見積書(PDF・Excel)を入力に、品目、数量、単価、金額、納期、支払条件、保証範囲、有効期限を抽出し、同じ項目名・同じ単位に揃えた比較表を生成します。
- 利用ツール
- AWS Textract/Azure AI/ChatGPT/Claude/Gemini/Google Document AI/Make/n8n/Power Automate/Python
- 対象業界
- 商社/建設/物流/製造
- 対象部門
- 総務/購買
- 対象業務
- 書類作成/比較検討
- 主な課題
- 判断に時間がかかる/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 抽出
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- SaaS追加(小)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 仕様を決め、3社に見積を依頼する
- 各社から見積書が届く(PDFのメール添付、Excelファイル、まれに紙)
- 3つのファイルを開き、内容を読む
- Excelの比較表テンプレートに、各社の金額を転記する
- 品目の並び順が各社で違うため、対応関係を確認しながら転記する
- 単位が違う場合(「1式」と「1台×3」など)、揃える
- 納期・支払条件・保証範囲を読み、条件の違いを確認する
- 稟議書に比較表を添付し、選定理由を書く
- 3社から見積書が届く
- 人案件フォルダに3社分のファイルを置く
- 自動各見積書から項目を抽出する
- 自動品目の対応関係を判定し、単位を揃える
- 自動比較表を生成する
- 自動条件が揃っていない箇所、記載のない項目を指摘する
- 人購買担当が比較表を確認し、指摘された差異を各社に照会する
- 人選定理由を書き、稟議に添付する
各工程の詳しい説明を読む
- 仕様を決め、3社に見積を依頼する
- 各社から見積書が届く(PDFのメール添付、Excelファイル、まれに紙)
- 3つのファイルを開き、内容を読む
- Excelの比較表テンプレートに、各社の金額を転記する
- 品目の並び順が各社で違うため、対応関係を確認しながら転記する
- 単位が違う場合(「1式」と「1台×3」など)、揃える
- 納期・支払条件・保証範囲を読み、条件の違いを確認する
- 稟議書に比較表を添付し、選定理由を書く
問題は4つあります。
(a)様式が各社で違う。 同じ品目でも呼び方が違い(「基板組立」「PCB実装」)、明細の分け方も違います。対応関係を人が判断しています。
(b)「1式」の中身が見えない。 A社が「制御盤一式 300万円」、B社が「制御盤 250万円+配線工事 40万円+試運転 20万円」と書いてくると、単純比較ができません。
(c)金額以外の条件を見落とす。 納期、保証期間、支払条件、設置費の有無を見落とし、最安値で決めた後に追加費用が発生します。
(d)比較表の作り方が担当者ごとに違う。 稟議を承認する側から見ると、案件ごとに比較の観点が変わっており、判断しにくい状態です。
- 3社から見積書が届く
- 【人】 案件フォルダに3社分のファイルを置く
- 【自動】 各見積書から項目を抽出する
- 【自動】 品目の対応関係を判定し、単位を揃える
- 【自動】 比較表を生成する
- 【自動】 条件が揃っていない箇所、記載のない項目を指摘する
- 【人】 購買担当が比較表を確認し、指摘された差異を各社に照会する
- 【人】 選定理由を書き、稟議に添付する
自動化されるのは「読む」「転記する」「揃える」「差異を見つける」の4つです。残るのは、差異を各社に確認することと、どこを選ぶかの判断です。
02今回想定するシステム構成
案件フォルダ(SharePoint)に3社分の見積書を配置
│
▼【トリガー】フォルダにファイルが揃ったとき / 手動実行
Power Automate(または Make / Python)
│
├──▶ OCR(Azure AI Document Intelligence 等)
│ └─ 各見積書から品目・数量・単価・金額を抽出
│
├──▶ 品目マスタ・過去の発注実績を参照
│
└──▶ LLM API
├─ 品目の対応関係の判定(名寄せ)
├─ 単位の正規化
├─ 条件差異の抽出
└─ 比較表の生成
│
▼
Excel / スプレッドシートの比較表 ──【人が確認・照会】
│
▼
稟議への添付| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence | Google Document AI、AWS Textract |
| ワークフロー | Power Automate | Make、n8n、Python |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 出力先 | Excel(SharePoint上) | Googleスプレッドシート |
| 保管 | SharePoint | Box、購買システム |
購買管理システム(調達SaaS)に見積比較機能がある場合は、まずそれを検討してください。 ただし、多くの製品は「取引先が指定様式で入力する」前提です。取引先に様式を強制できない場合に、この構成が必要になります。
03どうやって実装するのか
処理の起点を決める
案件フォルダに規定数のファイルが揃ったこと、または購買担当の手動実行を起点にします。
1社目が届いた時点で処理を始めても意味がないため、「3社分が揃ったら」という条件が必要です。ただし、2社しか集まらない案件もあるため、手動実行も残します。
Power Automate の SharePoint コネクタには「ファイルが作成されたとき」トリガーが標準で用意されているので、これでフォルダを監視し、ファイル数を数える分岐を入れます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 見積書 | 3社分のPDF / Excel | 各社からのメール添付 |
| 引合仕様 | 何を何個、いつまでに、どんな条件で依頼したか | 購買システム/依頼書 |
| 品目マスタ | 自社の品目コードと正式名称、単位 | 購買システム |
| 過去の発注実績 | 同一品目の過去の単価 | 購買システム |
| 比較の観点 | 自社が重視する条件(納期/保証/支払条件など) | 購買部が定義 |
引合仕様を渡すことが重要です。 「何を依頼したか」が分かって初めて、「A社は依頼した項目を見積もっていない」という抜けを検出できます。
データの取得方法を決める
PDFの見積書: OCRサービスに渡します。Azure AI Document Intelligence には請求書向けのモデルがあり、明細行を含む項目抽出が可能です。見積書は請求書と様式が近いため、請求書モデルで実用になる場合があります。自社に届く見積書で実測してください。 精度が出ない場合は、汎用のレイアウト解析モデルで表構造を抽出し、後段のLLMで項目を判定する構成にします。
Excelの見積書: OCRを通さず、直接読み込みます。セル結合が多用されている見積書は、表構造の読み取りが崩れます。 シートをそのままテキスト化して、LLMに解釈させるほうが確実な場合があります。
AIへ渡す前に整形する
- ファイル形式の振り分け … PDFはOCR、Excelは直接読み込み、画像はOCRに回します
- 税抜・税込の判定 … 見積書によって表示が違います。どちらか一方に揃えてから比較します。ここを間違えると10%の差が出ます
- 通貨の確認 … 外貨建ての見積が混ざる場合、為替レートの適用日を決めます
- 有効期限の確認 … 期限切れの見積が混ざっていないかを確認します
- 依頼仕様との照合準備 … 引合仕様の品目リストを、比較の基準列として用意します
AIに処理させる
| 処理 | 内容 |
|---|---|
| 品目の対応関係の判定 | 「基板組立」と「PCB実装」が同じ品目であることの判断 |
| 単位の正規化 | 「1式」の内訳を、他社の明細と対応づける |
| 条件差異の抽出 | 納期・保証・支払条件・付帯費用の違いを列挙する |
| 記載漏れの検出 | 引合仕様にあるが、見積に含まれていない項目 |
| 比較表の生成 | 揃った形での表出力 |
金額の合計や差額の計算は、AIにさせません。 抽出した数値をもとに、プログラムで計算します。見積比較は金額の判断に直結するため、計算をAIに任せる理由がありません。
指示内容を固定する
あなたは購買担当を支援する担当者です。
以下の3社の見積書について、比較表を作るための項目対応を判定してください。
【厳守事項】
- 金額、数量、単価を書き換えないでください。
抽出された数値をそのまま引き継いでください。
- 合計金額や差額を計算しないでください。計算は別途行います。
- 見積書に記載がない項目を、推測で補わないでください。
記載がない場合は "記載なし" としてください。
(例:保証期間の記載がない場合に「一般的に1年」と書かない)
- 品目の対応づけには、判断の根拠を書いてください。
根拠を示せない対応づけはしないでください。
- 「1式」など内訳が不明な項目は、他社の複数明細と
対応づけてよいですが、その旨を必ず注記してください。
- 引合仕様にあって見積書に含まれていない項目を、
missing_items に列挙してください。
- 税抜・税込の別が判別できない場合は、
unclear_items に記載してください。推測しないでください。
【引合仕様】
{rfq_specification}
【A社の見積書(抽出結果)】
{quote_a}
【B社の見積書(抽出結果)】
{quote_b}
【C社の見積書(抽出結果)】
{quote_c}
「記載がない項目を推測で補わない」の1行が、この構成でもっとも重要です。 「保証期間の記載がないので一般的に1年でしょう」とAIが書き、それが比較表に載って稟議が通ると、実際には保証がなかったという事態になります。記載なしは、記載なしとして表に出すことに意味があります。 それが各社への照会事項になります。
出力形式を固定する
{
"line_items": [
{
"spec_item": "制御盤",
"quotes": [
{
"vendor": "A社",
"matched_description": "制御盤一式",
"quantity": 1,
"unit": "式",
"unit_price": 3000000,
"amount": 3000000,
"match_basis": "品名が一致",
"note": "内訳の記載なし。B社の3明細に相当する可能性あり"
}
]
}
],
"conditions": [
{
"item": "納期",
"A社": "受注後30日",
"B社": "受注後30営業日",
"C社": "記載なし",
"difference_note": "A社は暦日、B社は営業日。実質約2週間の差"
}
],
"missing_items": [],
"unclear_items": [],
"inquiry_points": []
}
inquiry_points は、各社に照会すべき事項のリストです。これがこの構成の実用的な出力です。 比較表そのものより、「何を聞けばよいか」が明示されることの価値が大きい業務です。
システムへ連携する
比較表をExcelまたはスプレッドシートへ出力します。稟議に添付する様式が決まっている場合は、その様式のテンプレートに差し込みます。
社内で比較表の様式を統一していない場合は、この機会に統一してください。 様式が揃うと、稟議を承認する側が案件ごとに読み方を変える必要がなくなります。
購買システムへの連携は、発注が確定した後の話なので、この構成の対象外です。
人が確認する
全件、人が確認します。
確認する内容は3つです。
- 品目の対応づけが正しいか …
match_basisを見て判断します。ここを誤ると、違うものを比べた表になります - 金額の転記が正しいか … 抽出された金額を、見積書の原本と照合します。金額は3社分×明細数なので、確認は数分で済みます
inquiry_pointsに挙がった事項を各社に照会するか … 購買担当が判断します
選定の判断は、当然ながら人が行います。 AIは「A社が最安です」といった推奨を出しません。金額以外の条件が揃っていない段階で最安を示すことは、誤った判断を誘導します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 見積書が2社しか集まらない | 手動実行で2社比較として処理する。3社必須の社内ルールがある場合、その旨を表に注記する |
| 品目の対応づけができない | 対応づけずに、各社の明細をそのまま並べる。無理に対応づけない |
| 「1式」で内訳が全く不明 | 対応づけの候補を示しつつ、inquiry_points に「内訳の提示を依頼」と入れる |
| 税抜・税込が判別できない | unclear_items に入れ、比較表では両方を併記しない。推測して揃えない |
| 有効期限が切れている | 警告を表示する |
| 外貨建てが混ざる | 適用レートと基準日を明示したうえで換算する。換算前の金額も併記する |
| 引合仕様が文書化されていない | 比較の基準列を作れない。この場合、引合仕様を先に文書化する必要がある |
| Excelのセル結合で表が読めない | シート全体をテキスト化してLLMに解釈させる。それでも読めなければ人が入力する |
| 同じ社から改訂版が届いた | ファイル名または日付で最新版を判定する。古い版で比較しない |
記録を残す
- 見積書の原本(3社分)
- 抽出結果
- AIの対応づけと
match_basis - 生成した比較表
- 人が修正した対応づけ
最後が改善材料です。「特定の取引先の見積書だけ、毎回対応づけを直している」と分かれば、その社の品目名を名寄せ辞書に登録できます。
また、抽出した単価は過去の発注実績として蓄積します。次回以降、「前回の単価より15%高い」といった指摘が自動で出せるようになります。
04実装レベルの3段階
月80件の規模なら、半自動化まで進む価値があります。 1件45分が20分になれば、月40時間以上の削減です。
05工数削減シミュレーション
導入後 80件 × 15分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 相見積が社内ルール化されており、月50件以上の比較を行う組織。取引先の見積様式がばらばらな場合。
- 取引先に指定様式での提出を求められる場合(調達SaaSで足りる)。相見積が月10件未満の場合。
07最小構成で試す方法
- 直近の相見積案件を1件選び、3社分の見積書を用意する
- PDFをテキスト化する(PDFをコピー&ペーストするか、OCRサービスの画面に投入する)
- ChatGPT、Claude、Gemini などのチャット画面に、上のプロンプトを貼る
- 続けて引合仕様と3社分の抽出結果を貼り、対応づけと差異の抽出をさせる
- 自分が作ったExcelの比較表と比較する
比較の観点は3つです。
- 品目の対応づけが正しいか
- 自分が見落としていた条件差異を拾えているか … ここでAIの価値が出ます
- 記載のない項目を勝手に補っていないか … 補っていたら、プロンプトを直します
5件試して、対応づけの誤りが1件以下、条件差異の見落としがなければ、実用の目安に達しています。
多くの生成AIはPDFファイルをそのまま添付して読み込めます。 テキスト化の手間をかけずに試すこともできますが、その場合、表構造の読み取り精度がOCRを使う構成と変わることに注意してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 見積書の様式がばらばらで抽出精度が出ない | 主要取引先20社の見積書で先に実測する。精度の出ない社は手入力に回す |
| 税抜・税込が混在して比較が狂う | 判別できない場合は unclear_items に入れ、推測で揃えない |
| AIが記載のない保証期間などを補う | 「記載なしは記載なしと書く」制約を入れる。出力チェックで検証する |
| 「1式」の対応づけが実態と違う | 対応づけの根拠を必ず書かせ、人が確認する。無理な対応づけを禁止する |
| AIが合計金額を計算して誤る | 計算はプログラムで行う。AIには対応づけと差異抽出だけをさせる |
| 引合仕様が文書化されておらず、抜けを検出できない | 引合仕様のテンプレートを先に作る。AIより前にやるべき整備 |
| Excelのセル結合で表が読めない | シート全体をテキスト化してLLMに解釈させる |
| 改訂版の見積書と古い版が混在する | ファイルの日付または版数で最新版を判定する |
| AIが「A社が最適」と推奨してしまう | 推奨を出させない。条件が揃っていない段階での推奨は誤判断を誘導する |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 取引先の社名、見積単価、納期、支払条件。取引先の価格情報は、その取引先の営業秘密です。
- 取引先の見積情報の取り扱い … 見積書には「本見積の内容を第三者に開示しないこと」という条項が付いていることがあります。外部AIサービスへの入力が、この条項に抵触しないかを確認してください。 抵触する取引先の見積は、対象から外すか、社名を伏せて処理します
- 競合他社への情報流出の防止 … 3社の見積を1つのAIに渡すこと自体は問題ありませんが、生成された比較表が各社に見えることは絶対に避けてください。 保管場所のアクセス権限を購買部に限定します
- 外部AIへの入力 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- 単価情報の蓄積 … 過去単価を蓄積することは有用ですが、そのデータのアクセス権限を限定してください。取引先ごとの単価は、交渉上の重要情報です
- 自動実行してよい範囲 … 比較表の生成までです。発注の実行、取引先の選定を自動化しないでください
誤りが起きた場合のリスクは、誤った比較に基づく発注判断です。金額の誤りは稟議の金額そのものを誤らせます。人の確認を必ず入れてください。
10まず何から始めるか
1週目:引合仕様のテンプレートを作る
AIを使う前に、これをやってください。 「何を、何個、いつまでに、どんな条件で」を書く欄を決めます。これがないと、見積の抜けを検出する基準がありません。この整備だけで、比較の質が上がります。
2週目:OCRの精度を測る
主要取引先の見積書20件で、抽出精度を測ります。品目名、数量、単価、金額が正しく取れるかを確認します。8割以上取れれば進めます。
3週目:1案件で試す
直近の相見積1件で、最小構成(§8)を試します。自分が作った比較表と比べ、見落としていた条件差異を拾えているかを確認します。
4〜6週目:半自動化を作る
フォルダ監視 → OCR → LLM → Excel出力までを作ります。購買担当1名が2週間使い、45分が何分になるかを実測します。
2か月目以降: 過去単価の蓄積と、稟議様式への差し込みを追加します。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Azure AI Document Intelligence による帳票からの項目・明細行の抽出(請求書モデル。見積書への適用は自社の様式での実測が必要) | MicrosoftDocs: Invoice model | 2026-09-02 |
| Power Automate の SharePoint コネクタ「ファイルが作成されたとき」トリガー | Microsoft Learn: SharePoint コネクタ | 2026-09-02 |
| Claude APIのStructured Outputs | Anthropic: Structured outputs | 2026-09-02 |
見積書に特化したOCRモデルは、請求書ほど汎用モデルが整備されていません。 自社に届く見積書での実測が必須です。購買システムとの連携仕様も製品によって異なります。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0012)についてのご相談はこちらから。
