宮浦会計事務所の連絡先

経理業務効率化

PDFにした通帳を、AIを使ってCSVにする方法

最初に

こんにちは!税理士・公認会計士の宮浦です!
今回はPDFにした通帳記帳内容を、geminiでcsvにしました。
geminiのOCR機能は高性能でgemini2.5でもある程度出来たのですが、預入欄の金額に支払の金額が入ってしまったり、支払の金額欄に残高金額が入ってしまったりするのが悩みでした。
gemini3.0になってそれらのミスも減ったので今回ブログにしてみましたが、100%上手くいく訳ではないと思いますのでその点ご容赦ください。

手順① gemini

必要なものは、通帳のPDF、gemini、プロンプト、あとエクセルかグーグルスプレッドになります。
今回はエクセルで説明しますが、グーグルスプレッドでも基本的な操作は同じになります。
PDFをgeminiに貼り付け、プロンプトを入力して実行すると下記のデータが出力されます。
geminiは無料版でも出来るかもしれませんが、情報漏洩の観点から有料版を推奨いたします。

手順② エクセル取り込み

次に、出力された内容をコピーしてエクセルに貼り付けます。
貼り付けると1列に全ての情報が記載されてしまい、そのままでは使えないので『データ』のタブから『区切り位置』を選択し、『コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ』を選択し完了⇒『コンマ』を選択し完了⇒データ形式は『G/標準』を選択し完了で取り込みが完了します。
※エクセル画面は改変しています。

上記は数字等は変更していますが、私の場合は金額の間違い等もなく完璧に出来ました。
ただ、手書きの文字などは基本読み取れず、列がずれる原因などになり邪魔になりますので無視するように下記のプロンプトで指定しています。

プロンプト(参考)

参考に今回使用したプロンプトを貼っておきます。
銀行やgeminiのバージョン等によっては、上手くいかないこともあると思うので、その場合はご容赦ください。
私もやったのですが、上手くいかない箇所を改善するようにプロンプトを変更し、最後にgeminiに『最適なプロンプトにして』とお願いすれば上手くいくケースもあると思います。

プロンプトの例(PDFにした通帳のcsv取込の場合)

『あなたはOCR機能とデータ解析能力を持つAIです。添付された銀行の普通預金(兼お借入明細)のPDFファイルから取引データを抽出し、指定された変換ルールに従ってCSV形式のテキストデータとして直接出力してください。
## 抽出・変換要件
### 1. データ項目とCSV列構成
以下の5つの項目を抽出し、CSVヘッダーを「年月日,摘要,お支払金額,お預り金額,差引残高」としてください。
* **年月日**: 取引年月日。
* **摘要**: 取引内容(例: カード、利息)と、**お支払金額/お預り金額欄に記載された摘要の補足情報(振込先等)**を統合したもの。
* **お支払金額**: 支払金額(数値)。
* **お預り金額**: 預入金額(数値)。
* **差引残高**: 取引後の残高(数値)。
### 2. データ抽出・クレンジング・変換ルール
#### a. 日付変換
PDF内の「YY.MM.DD」形式の日付を、以下のルールで西暦に変換し、「YYYY-MM-DD」形式で出力してください。
* 「YY」は**令和YY年**を指します。(例:06.07.29 → 2024-07-29)
* 令和YY年 = (2018 + YY)年
#### b. 摘要の統合と処理
* 摘要欄が空白の場合、**カンマのみで空欄を表現してください**(例: ,,)。
* お支払金額またはお預り金額欄に、**摘要の補足情報(振込先名等)が銀行印字で記載されている場合**は、2列目の摘要に追加して統合してください。
* **手書きの情報は全て無視してください。**
#### c. 金額(お支払金額 / お預り金額)の処理
* **金額は数値のみを抽出し、カンマ(,)やアスタリスク(*)は全て削除してください。**
* **金額が記載されていない欄、または補足情報(摘要)のみが記載されている欄は、空欄としてカンマのみで表現してください**(例: ,,)。
* **同じ取引で「お支払金額」と「お預り金額」の両方に金額が入ることはありません。**
#### d. 差引残高の処理
* **アスタリスク(*)は全て削除し、数値として抽出してください。**
* **差引残高が記載されていない欄は、空欄としてカンマのみで表現してください**(例: ,,)。
#### e. データ整合性の検証と修正(最重要)
* **前行の差引残高**に**当行のお預り金額を加え**、**当行のお支払金額を引いた金額**が**当行の差引残高**と一致するかを全ての行で検証してください。
* **もし整合しない場合、それはOCR誤認識により「お支払金額」と「お預り金額」の列が入れ替わっている可能性が高いと判断し、2つの列の値を入れ替えて正しい残高計算が成り立つように調整してください。**
### 3. CSV出力形式
* 1行目の預金通帳の前ページからの繰越残高の情報は不要なので、**無視してください**。
* CSVデータはUTF-8エンコードとし、**コードブロック**(\`\`\`csv ... \`\`\)の形式で**直接出力**してください。他のテキストや説明は一切含めないでください。』

最後に

私が使うAIはグーグルのgeminiともうひとつ別ある程度なのですが、OCRに関しては今はgeminiが優秀だなという感想です。
グーグルにはgmail、グーグルdrive、グーグルスプレッドなど中小企業に役立つ機能が満載で、かつ、セキュリティ面でも十分な機能が備わっています(ちゃんとセキュリティ設定すればですが)。
中小企業にすれば、あまりお金をかけずに高度な社会システムを構築できるサービスだと思いますので、とてもお勧めだと思います。

-経理業務効率化