PDFからExcelへの転記をAIで済ませる — OCRで挫折した人向けの手順
「これ、全部Excelにまとめておいて」。渡されたのは大量のPDF。画面の左にPDF、右にExcelを並べて、一行ずつ打ち込む。コピペを試みても改行が崩れ、表の枠はバラバラ、そもそもテキスト選択できない画像PDFまである。
この記事では、PDFからExcelへの転記をAIに渡す具体的な手順と指示文(プロンプト)、そして実際に崩れたパターンを書き残す。OCRや変換ツールで挫折した人ほど効くはずだ。
OCRで解決しなかった理由
「OCR(光学文字認識)を使えば済むのでは」と一度は試して、諦めた人は多い。文字は読み取れるのに、結局手直しが終わらないからだ。原因ははっきりしている。「文字を読み取ること」と「データを整理すること」は別問題なのだ。
- レイアウト依存:「左上の数字は金額」というルールに頼るため、PDFの形式が少し変わると読み取り位置がズレる。
- 文脈の欠如:「1,200」は読めても、それが単価なのか消費税なのか合計なのかを判断できない。
- 構造化できない:文章中の「〇〇株式会社、担当:佐藤、電話:03…」を「会社名」「担当者」「電話番号」の列に振り分ける作業は人間に残る。
生成AI(ChatGPTやClaudeなど)が変えたのはここだ。「どこにあるか(座標)」ではなく「何であるか(意味)」で指示できる。
| 特徴 | 従来のOCR / 変換ツール | 生成AIによる構造化 |
|---|---|---|
| 指示の出し方 | 座標・位置を指定する | 意味・項目名を指定する |
| レイアウト変更 | 誤読が起きる | 文脈から判断できる |
| 出力の形 | 文字の羅列 | 表形式に整えられる |
| 人間の役割 | ゼロから打ち込む作業者 | 結果をチェックする検品者 |
AIに渡す前に決めること
- 転記先の列を先に確定する。「日付、取引先名、金額、備考」のように、完成形のExcelのヘッダーを1行決めてから始める。ここが曖昧だと結局手直しになる。
- 伏せるものを決める。取引先名・金額・個人名は「A社」「9999」等のダミーに置き換えてから外部AIに渡す。伏せれば安全と断定はできないので、入れてよい範囲は会社の規程を先に確認しておく。
手順(テキストが選択できるPDFの場合)
- PDFの該当ページの文字列をコピーする(崩れていて構わない)。
- ダミー化を施し、次の指示文に貼り込む。
以下はPDFからコピーしたテキストです。崩れていますが、表として復元してください。
# 出力形式
日付 / 品名 / 数量 / 金額 の4列、タブ区切り(TSV)。説明文は不要
# ルール
- 読み取れない箇所は「?」と入れる(推測で埋めない)
- 省略せずに全行出力する
# テキスト
【ここにPDFからコピーした文字列を貼る】
- 出力をExcelの空きシートに貼り付ける(TSVならセルに正しく分かれる)。
- 検算する。行数がPDFと一致するか、金額列の合計が元の合計欄と一致するかを確認する。
- 問題なければ本番の表へ貼り付け、ダミーを元に戻す。
手順(画像PDF・スキャンPDFの場合)
テキストが選択できないPDFは、コピーの代わりにそのページのスクリーンショットをAIに貼り付ける。指示文は同じでいい。最近の生成AIは画像内の表をそのまま読める。
ただし画像経由は誤読率が上がる。特に「0とO」「1とl」「6と8」の数字誤読は検算でしか捕まえられないので、金額が絡むものは合計チェックを省略しないこと。
実際に崩れたパターン
失敗例:2ページ目以降が「以下同様」で省略された。 30行のつもりが出力は12行で、途中に「…(以下同様)」と書かれていた。行数の検算で気づけたからよかったが、気づかず貼っていたら欠損データのまま報告するところだった。以降、ルールに「省略せずに全行出力する」を必ず入れ、10ページを超えるPDFはページ単位で分割して渡している。
ほかに起きがちなのは、単位の混在(「1,200円」と「1200」が同じ列に入る)と、マイナス値の取りこぼし(▲や(1,200)表記が正の数になる)。どちらも「金額は3桁区切りなし・マイナスは-記号の半角数字に統一」とルールに足せば直る。
毎月来るPDFは指示文を使い回す
請求書のように毎月同じ形式で届くPDFなら、一度うまくいった指示文を保存しておけば、翌月は貼り替えるだけで済む。転記全般の指示文の型は転記作業をAIで減らす手順にまとめた。PDFではなくメール本文から表を起こす場合はメール本文はAIに渡す列を決めてから表にするが近い。
明日打つ一手
まず、手元の「面倒なPDF」を1つだけ選んで、5分だけ試す。
- 転記先の列名を決める。
- 1ページ分だけダミー化して、上の指示文で渡す。
- 行数と合計の検算が合えば採用。合わなければ、崩れた箇所をルールに1行足す。
ゼロから100まで打ち込むのと、AIが作った90点を10分で100点に直すのとでは、消耗が決定的に違う。「入力」から「検品」へ。作業の名前が変われば、午後の残り時間も変わってくる。