PDFからエクセルへの転記をラクしたい!
小売業で働くYasuと申します。スーパー銭湯♨大好きで、最近はボートレースにもはまりつつあります。
私が担当している業務に、「契約書の管理」というものがあります。業務内容を簡単に時系列で説明すると、下記のような感じになります。
契約内容にもとづき、各お取引先に進捗報告を依頼
各お取引先から進捗報告がGmailで返信(エクセルまたはPDF)
エクセルで届いた報告書は、アクセスで集計表に自動転記。
PDFで届いた報告書は、手入力で転記。
1つの報告書につき、転記する項目が18個あり、時間もかかるうえに打ち間違いもしょっちゅう
スキャンされたPDFなので、エクセルのデータ取得機能も使えず
なんとか、時短+精度向上ができないものか考え、手始めに 「自動+手動」 のツールをつくってみました!

報告書の一例
集計表
使い方
報告書PDFをチャットボットに添付します。「プロンプトに沿って、抽出して」と入力。
添付するPDFは1枚でも複数枚でも対応可能です。

あらかじめ指定しているプロンプトに従い、下記のような返答が返ってきます。

返ってきた文面をすべてコピーし、エクセルに値貼り付けし、仮置きします。すると、
1行目に各項目、2行目にPDF1つ目、3行目にPDF2つ目、4行目にPDF3つ目が貼り付きます。

「データ」タブ→「区切り位置」機能を使用し、項目ごとに分割します。


集計表エクセルに値貼り付けし、完成です。

作り方
たいした手順はありませんが、作り方を紹介します。プロンプト内の項目名を変更すれば、他のPDFにも対応できると思います。
| 使用したもの | 用途 |
|---|---|
| Dify(チャットボット) | プロンプトの入力 |
| Gemini2.5 flash | PDFから必要データを抽出 |
チャットボットのプロンプトに下記をコピペ(
ChatGPTと相談しながら作成しました)
以下の帳票データから必要項目を抽出してください。
出力は必ず「タブ文字(\t)のみ」で区切ってください。
スペースは禁止します。
CSVではなくTSV形式で出力してください。
【重要ルール】
・区切りは必ずタブ(Tabキー)
・スペース区切り禁止
・JSON禁止
・説明禁止
・日付の表記はyyyymmdd
・1行目:項目名
・2行目:値
【項目】
対象部門
取引先名称
契約内容欄の最初5桁又は6桁のコード
契約書No
入金予定日
契約期間開始
契約期間終了
計算期間開始
計算期間終了
割り戻し金(税抜き)上部
消費税8%
8%合計
割り戻し金(税抜き)下部
消費税10%
10%合計
割戻し金合計(税抜)
消費税
税込金額
と、ここまで 自動+手動 でのツールを作成してきました。実際に使用してみると、入力間違いはなくなったが、手作業の工程が多く、さほどラクになっていない!という結果でした。

PDFからエクセルへの転記をもっとラクしたい!
次にチャレンジするのは、完全自動化のツールづくりです。Googleドライブに報告書PDFを投函し、ボタン1クリックでスプレッドシートに転記されるのが理想!
ただ、まだまだ私の知識不足で完成には至っていません。最終工程のスプレッドシートへアウトプットするところでつまずいていますので、そこに至るまでの工程を掲載しておこうと思います。
Makeのシナリオ
フローチャート
Google Driveのファイルを取得し、HTTPリクエストを経由してJSON形式に加工し、Googleスプレッドシートに書き込むまでの流れです。

作り方(ステップ1)
ここをクリックすると開きます
まず、GoogleDrive内に報告書PDFを保管するフォルダを作成しておきます。ここでは、フォルダ名「割り戻し金確認書PDF保管」で作成しました。指定フォルダからPDFを検索するモジュールとして、GoogleDrive(Watch Files in a Folder)を使用します。作り方(ステップ2)
作り方(ステップ3)
作り方(ステップ4)
作り方(ステップ5)
ここをクリックすると開きます
ステップ4で得られたJSON文字列をMakeで扱える項目データに変換します。今回、ここが ボトルネック となっている箇所です。1つ前のモジュールのBody contentへのプロンプトを何度も修正しましたが、解決に至っておりません![]()
作り方(ステップ6)
おわりに
現状は、JSONモジュールに項目別データがインプットできていないというところが解決できておりません。このツールが完成すれば、確実に月初の集約業務がラクになります。あきらめずに最後まで完成させ、再度記事の投稿をしたいと思います。








