図1:文字情報の有無で抽出方法を分け、数値チェックを経てExcelへ渡す設計例。実稼働ツールの画面ではありません。
まずは手元のソフトで1枚だけ試す
文字を選択できるPDFなら、対応するExcel環境では[データ]→[データの取得]→[ファイルから]→[PDFから]を使い、表を選んで読み込めます。Power Queryで列の不要部分を削除したり、型を整えたりする方法もあります。PDFの構造によっては表の認識が崩れるため、元ファイルとの照合は必要です。
スキャンPDFなら、OCR機能のあるPDFソフトで文字認識し、Excel形式へ書き出す方法が候補です。例えばAdobe AcrobatにはPDFからXLSXへの変換と、必要に応じて画像の文字を認識する設定があります。機能や利用条件は契約・環境によって異なるため、使用中の製品で確認してください。
最初から大量のPDFを処理する必要はありません。よくある帳票を1枚選び、「請求日・請求書番号・税込金額」の3項目だけを取り出して比較すると、実用性を判断しやすくなります。
OCRの数字は、見た目が正しくても間違う
例えば、原本に「小計9,818円、消費税982円、合計10,800円」と書かれていたとします。OCRが合計を「10,300円」と読み違えても、Excel上では普通の数字として保存されてしまうことがあります。これは説明用の架空例ですが、数値の整合性確認が必要な理由を表しています。
こうした誤りを減らすには、読んだ数字をそのまま確定させない仕組みが有効です。
・ 計算の照合:小計と税額の合算が合計と一致するか
・ 形式の確認:日付として成立するか、必須の金額が空欄でないか
・ 項目の照合:「単価」「小計」「合計」を取り違えていないか
・ 番号の保護:請求書番号の先頭の0を消さないよう、文字列で保存するか
・ 原本への戻り道:不一致の数字がPDFの何ページにあるか確認できるか
とくに厄介なのは、OCRが自信を持って出した「もっともらしい誤り」です。認識精度の表示だけを信頼せず、業務ルールによる照合と人による最終確認を組み合わせます。
目指すのは「全件自動」より「確認する件数を減らす」こと
例えば毎月届く定型の請求書であれば、PDFを指定フォルダに置き、項目抽出、形式統一、数値チェック、Excelへの書き込みまでをまとめる構成が考えられます。
ここで重要なのは、認識できない帳票を無理に登録しないことです。処理結果を「確認不要の候補」「要確認」「読取失敗」のように分け、担当者が必要なものだけ原本と見比べる設計なら、手入力を減らしつつ誤登録も抑えやすくなります。自動判定を通ったものも、導入初期や重要な金額は抜き取り確認などの検証が必要です。
また、取引先ごとにレイアウトが違う場合は、単純な位置指定では対応しきれません。帳票の種類を先に判別する、項目名と値の関係を抽出するなど、OCRの後に別の処理が必要になります。
どこまで自分で行い、どこから依頼するか
同じ形式のPDFが数枚だけなら、ExcelのPDF取込やPDFソフトの変換機能をまず試すのが合理的です。変換結果を目視で確認できる件数なら、専用ツールを作らずに済む場合があります。
一方、毎月多くのPDFが届く、取引先ごとに書式が違う、既存のExcel台帳へ決まった列で追加したいといった条件では、抽出後のルール設計やエラー処理まで考える必要があります。Pythonなどで専用ツールを組む方法や、帳票解析サービスを使う方法は、この段階で比較します。
費用はPDFの枚数だけでは決まりません。スキャン品質、帳票の種類、抽出項目、手書きの有無、チェック方法、既存Excelとの連携によって変わります。特にOCRを伴う複数書式への対応は、個別の見積りが適しています。
相談前にあると判断しやすいもの
用意できる範囲で、代表的なPDFの形式、取り出したい数字の一覧、転記後のExcelの列構成、月間件数が分かると、適した方法を絞りやすくなります。個人情報や取引先情報は、相談用に匿名化したサンプルを使ってください。クラウドのOCRサービスへ社内資料を送れない場合は、その条件も重要です。
私が重視しているのは、転記の完全自動化そのものではなく、人が打ち直す回数と、確認すべき場所の両方を減らす設計です。まずは代表的なPDF1枚で、どの数字を安定して取り出せるか。その結果が、次の方法を選ぶ判断材料になります。PDFとExcelを使った転記業務の整理は、ココナラ内のプロフィール・関連出品サービスからご相談いただけます。