業務自動化で脱・手作業!一人事務のDX活用術 | RPA・自動化ツール

業務自動化で脱・手作業!一人事務のDX活用ブログ|RPA・自動化ツールで業務をもっとラクに、もっとスマートに

【AI×OCR】Power Automate Desktop × ChatGPTでレシートから日付・金額・取引先を抽出する方法

【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

日々の業務で地味に時間がかかるのが、領収書やレシートの情報をExcelに手入力する作業ではないでしょうか?

「日付や金額、取引先を自動で読み取って、Excelに記録してくれたらどれだけ楽か…」
そんなふうに思ったことがある方も多いと思います。

しかし、Power Automate Desktop(PAD)に標準搭載されているOCRは、精度がやや不安定。
また、他の無料OCRツールでも、数字の読み取りミスや不自然な空白、記号の混入が多く、正規表現ではなかなか綺麗に情報を抜き出せません。

たとえば、実際にOCRで読み込んだレシートの金額が「12 , 0 00」や「Y5 , 600」などと表記されていたら、通常の正規表現では扱いにくく、毎回エラーや修正が必要になりますよね。

そこで今回は、Power Automate Desktop × ChatGPT APIを使って、OCRの出力結果から「日付・金額・取引先」をAIに解析させ、Excelに自動で記録する方法をご紹介します。


実際のOCR出力例とAIの解析結果

今回、読み込んだレシート例がこちら。

【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

使用したOCR結果(画像はPNG形式)はこんな感じでした。

-------------------------------------

領 収 証
事 務 用 品 が 何 で も う

東 京 都 品 川 区 川 辺 の 葦 4 ・ 2-9
電 話 03-1234-5678
登 録 番 号 T7010401100770

レ シ ー ト か ら 応 募 で 10 , 000 円 キ ャ ッ シ ュ バ ッ
ク の チ ャ ン ス !

2024 年 5 月 2 日 い : 42

ポ - ル ペ ン ( 黒 ) 加 本 入
単 200 x 2    内   Y400
ガ ム テ ー プ
単 120X12    内  VI 440

小 計                 ¥ 1 840
合 計              \ 1 , 8 和
( 内 消 費 税

-------------------------------------

見てのとおり、全体にスペースが多く、金額も「\ 1 , 840」など不自然な記号や空白が含まれています。文字化けもしていますね…。

このデータをChatGPTにプロンプトとして渡した結果は…

-------------------------------------

 

【日付】2024-05-02  
【金額】1,840円  
【取引先名】解析不能

-------------------------------------

取引先名についてはロゴ画像でOCRに読み取れていなかったため「解析不能」となりましたが、日付や金額はきちんと抽出できている点は注目です


フローの作り方(PAD側)

実装は以下の流れで進めていきます。

まずは、ChatGPTのAPIkeyを取得しておきます。

keiridx.net

OCR対象ファイル(レシート画像)を指定

  • 「フォルダー内のファイルを取得」アクションで、対象のPNGファイル一覧を取得します。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

  • APIkeyの設定、プロンプトの設定、変数の設定なども行っておきます。
  • プロンプトは以下のように設定します。

プロンプト設定

-------------------------------------

以下はOCRで読み取ったレシートの文字列です。この内容から、「日付」「取引先名」「合計金額(数字+円マーク)」をそれぞれ1つずつ抽出してください。日付は「2025-04-18」のように西暦4桁・月2桁・日2桁で出力してください。取引先は店名や会社名など、もっとも主要な発行元名を1つ選んでください。金額は「10,000円」のようにカンマ区切り+円でお願いします。いずれかが見つからない場合は、「解析不能」と出力してください。ノイズや不明瞭な表記(@、VI、*、改など)が含まれている可能性がありますが、なるべく意図をくみ取り、判断してください。日付に使用される「/」「-」などの記号がOCRで「f」「$」「R」「a」などに変換されている可能性があります。たとえば「2024f$5R2a」は「2024-05-22」と読み取って構いません。合計金額は文字列に誤認識された記号(「¥」「]」「-」「空白」など)が含まれる場合でも、前後の数字のまとまりから自然な金額(千円以上)を推測して抽出してください。出力は必ず以下の形式でお願いします。  すべての項目を埋めてください。わからない場合は「解析不能」と記載してください。出力フォーマット:【日付】0000-00-00【金額】00,000円【取引先名】

-------------------------------------

② For Eachで1ファイルずつOCRを実行

  • Windows標準OCRを使ってテキストを抽出。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

③ 改行コードなどを削除

  • 改行コード、タブ、全角スペース、円マークなどを削除。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

④ ChatGPTへAPIで問い合わせ

【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

要求本文

------------------

{
  "model": "gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "%prompt%"
    },
    {
      "role": "user",
      "content": "%prompt%\n\n==== OCRテキストここから ====\n%Replaced%\n====OCRテキストここまで===="
    }
  ],
  "max_tokens": 200,
  "temperature": 0.5
}

------------------

⑤ 返ってきた値を整形・分割

  • 出力されたフォーマットを正規表現などで分解。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

Excelに追記

  • ファイル名+抽出情報を1行ずつExcelに書き込んでいきます。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    しかし、Power Automate Desktop(PAD)に標準搭載されているOCRは、精度がやや不安定。
    また、他の無料OCRツールでも、数字の読み取りミスや不自然な空白、記号の混入が多く、正規表現ではなかなか綺麗に情報を抜き出せません。

    たとえば、実際にOCRで読み込んだレシートの金額が「12 , 0 00」や「Y5 , 600」などと表記されていたら、通常の正規表現では扱いにくく、毎回エラーや修正が必要になりますよね。

    そこで今回は、Power Automate Desktop × ChatGPT APIを使って、OCRの出力結果から「日付・金額・取引先」をAIに解析させ、Excelに自動で記録する方法をご紹介します。


    実際のOCR出力例とAIの解析結果

    今回、読み込んだレシートがこちら。

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    使用したOCR結果(画像はPNG形式)はこんな感じでした。

    -------------------------------------

    領 収 証
    事 務 用 品 が 何 で も う

    東 京 都 品 川 区 川 辺 の 葦 4 ・ 2-9
    電 話 03-1234-5678
    登 録 番 号 T7010401100770

    レ シ ー ト か ら 応 募 で 10 , 000 円 キ ャ ッ シ ュ バ ッ
    ク の チ ャ ン ス !

    2024 年 5 月 2 日 い : 42

    ポ - ル ペ ン ( 黒 ) 加 本 入
    単 200 x 2    内   Y400
    ガ ム テ ー プ
    単 120X12    内  VI 440

    小 計                 ¥ 1 840
    合 計              \ 1 , 8 和
    ( 内 消 費 税

    -------------------------------------

    見てのとおり、全体にスペースが多く、金額も「\ 1 , 840」など不自然な記号や空白が含まれています。文字化けもしていますね…。

    このデータをChatGPTにプロンプトとして渡した結果は…

    -------------------------------------

     

    【日付】2024-05-02  
    【金額】1,840円  
    【取引先名】解析不能

    -------------------------------------

    取引先名についてはロゴ画像でOCRに読み取れていなかったため「解析不能」となりましたが、日付や金額はきちんと抽出できている点は注目です


    フローの作り方(PAD側)

    実装は以下の流れで進めていきます。

    まずは、ChatGPTのAPIkeyを取得しておきます。

    keiridx.net

    OCR対象ファイル(レシート画像)を指定

    • 「フォルダー内のファイルを取得」アクションで、対象のPNGファイル一覧を取得します。

      【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    • APIkeyの設定、プロンプトの設定、変数の設定なども行っておきます。
    • プロンプトは以下のように設定します。

    プロンプト設定

    -------------------------------------

    以下はOCRで読み取ったレシートの文字列です。この内容から、「日付」「取引先名」「合計金額(数字+円マーク)」をそれぞれ1つずつ抽出してください。日付は「2025-04-18」のように西暦4桁・月2桁・日2桁で出力してください。取引先は店名や会社名など、もっとも主要な発行元名を1つ選んでください。金額は「10,000円」のようにカンマ区切り+円でお願いします。いずれかが見つからない場合は、「解析不能」と出力してください。ノイズや不明瞭な表記(@、VI、*、改など)が含まれている可能性がありますが、なるべく意図をくみ取り、判断してください。日付に使用される「/」「-」などの記号がOCRで「f」「$」「R」「a」などに変換されている可能性があります。たとえば「2024f$5R2a」は「2024-05-22」と読み取って構いません。合計金額は文字列に誤認識された記号(「¥」「]」「-」「空白」など)が含まれる場合でも、前後の数字のまとまりから自然な金額(千円以上)を推測して抽出してください。出力は必ず以下の形式でお願いします。  すべての項目を埋めてください。わからない場合は「解析不能」と記載してください。出力フォーマット:【日付】0000-00-00【金額】00,000円【取引先名】

    -------------------------------------

    ② For Eachで1ファイルずつOCRを実行

    • Windows標準OCRを使ってテキストを抽出。

      【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    ③ 改行コードなどを削除

    • 改行コード、タブ、全角スペース、円マークなどを削除。

      【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    ④ ChatGPTへAPIで問い合わせ

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    要求本文

    ------------------

    {
      "model": "gpt-4o-mini",
      "messages": [
        {
          "role": "system",
          "content": "%prompt%"
        },
        {
          "role": "user",
          "content": "%prompt%\n\n==== OCRテキストここから ====\n%Replaced%\n====OCRテキストここまで===="
        }
      ],
      "max_tokens": 200,
      "temperature": 0.5
    }

    ------------------

    ⑤ 返ってきた値を整形・分割

    • 出力されたフォーマットを正規表現などで分解。

      【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    全体像

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    実際のEXCELへの出力

    【AI×OCR】Power Automate Desktop × ChatGPTでレシートや請求書から日付・金額・取引先を抽出する方法

    全体的に精度が高いとは言いにくく(AIというよりOCR精度の問題)手直しは必要ですが、解析不能でもエラーにならず止まらないのがAIのメリットですね。

メリット・デメリット

✅ メリット

  • 読み取りフォーマットに多少の乱れがあってもAIが補完してくれる

  • 抽出できない場合でも「解析不能」と出力するため、止まらず続行できる

  • ChatGPTユーザーであれば格安で運用可能(APIが従量課金制)

❌ デメリット

  • ChatGPT APIの実行に数秒かかるため、大量処理には向かない

  • OCR結果があまりに崩れていると、精度が落ちる(←OCR側の課題)

  • 素直にPower Automateの有料OCR&AI機能を使う方が処理速度や正確性は良いような気はする

まとめ:PADのOCRとChatGPTを組み合わせれば、無料でもここまでできる!

Power Automate DesktopのOCR単体では限界がある…
だけど、ChatGPTの言語処理力を使えば、曖昧なデータからでも意味ある情報が抽出可能です。

正規表現では対応しきれないOCRの「揺れ」や「ズレ」も、AIが補完してくれることで、業務自動化がより現実的なものになります。

「超低コストで業務効率化したい」
「ChatGPT APIをもっと実務に活かしたい」
という方には、ぜひ試していただきたい仕組みです。

💡 もっと詳しく自動化やAPI連携を極めたい方へ:
AIとPower Automate Desktopを組み合わせた業務自動化に興味がある方には、以下のような書籍もおすすめです👇

ChatGPT×Power Automate Desktopでメール自動返信!AIがメールを自動要約・自動作成・自動送信で業務効率が劇的アップ

Power Automate for desktop×ChatGPT業務自動化開発入門 RPAとAIによる自動化&効率化テクニック

新品価格
¥3,300から
(2025/4/5 09:45時点)

RPAとAIによる効率化テクニックが実践的に学べる一冊です。

筆者のように、初心者からステップアップしたい方にもピッタリ!

 

▼この記事が役に立ったらブックマークをお願いします

 ChatGPT×Power Automate Desktopでメール自動返信!AIがメールを自動要約・自動作成・自動送信で業務効率が劇的アップ

ChatGPT×Power Automate Desktopでメール自動返信!AIがメールを自動要約・自動作成・自動送信で業務効率が劇的アップ
人気ブログランキング