日々の業務で地味に時間がかかるのが、領収書やレシートの情報をExcelに手入力する作業ではないでしょうか?
「日付や金額、取引先を自動で読み取って、Excelに記録してくれたらどれだけ楽か…」
そんなふうに思ったことがある方も多いと思います。
しかし、Power Automate Desktop(PAD)に標準搭載されているOCRは、精度がやや不安定。
また、他の無料OCRツールでも、数字の読み取りミスや不自然な空白、記号の混入が多く、正規表現ではなかなか綺麗に情報を抜き出せません。
たとえば、実際にOCRで読み込んだレシートの金額が「12 , 0 00」や「Y5 , 600」などと表記されていたら、通常の正規表現では扱いにくく、毎回エラーや修正が必要になりますよね。
そこで今回は、Power Automate Desktop × ChatGPT APIを使って、OCRの出力結果から「日付・金額・取引先」をAIに解析させ、Excelに自動で記録する方法をご紹介します。
実際のOCR出力例とAIの解析結果
今回、読み込んだレシート例がこちら。
▼
-------------------------------------
領 収 証
事 務 用 品 が 何 で も う
東 京 都 品 川 区 川 辺 の 葦 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を取得しておきます。
① OCR対象ファイル(レシート画像)を指定
-
「フォルダー内のファイルを取得」アクションで、対象のPNGファイル一覧を取得します。
- 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を実行
③ 改行コードなどを削除
-
改行コード、タブ、全角スペース、円マークなどを削除。
④ ChatGPTへAPIで問い合わせ
要求本文
------------------
{
"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
}
------------------
⑤ 返ってきた値を整形・分割
-
出力されたフォーマットを正規表現などで分解。
⑥ Excelに追記
-
ファイル名+抽出情報を1行ずつExcelに書き込んでいきます。
しかし、Power Automate Desktop(PAD)に標準搭載されているOCRは、精度がやや不安定。
また、他の無料OCRツールでも、数字の読み取りミスや不自然な空白、記号の混入が多く、正規表現ではなかなか綺麗に情報を抜き出せません。たとえば、実際にOCRで読み込んだレシートの金額が「12 , 0 00」や「Y5 , 600」などと表記されていたら、通常の正規表現では扱いにくく、毎回エラーや修正が必要になりますよね。
そこで今回は、Power Automate Desktop × ChatGPT APIを使って、OCRの出力結果から「日付・金額・取引先」をAIに解析させ、Excelに自動で記録する方法をご紹介します。
実際のOCR出力例とAIの解析結果
今回、読み込んだレシートがこちら。
▼
-------------------------------------
領 収 証
事 務 用 品 が 何 で も う東 京 都 品 川 区 川 辺 の 葦 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を取得しておきます。
① OCR対象ファイル(レシート画像)を指定
-
「フォルダー内のファイルを取得」アクションで、対象のPNGファイル一覧を取得します。
- 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を実行
③ 改行コードなどを削除
-
改行コード、タブ、全角スペース、円マークなどを削除。
④ ChatGPTへAPIで問い合わせ
要求本文
------------------
{
"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
}------------------
⑤ 返ってきた値を整形・分割
-
出力されたフォーマットを正規表現などで分解。
全体像
実際のEXCELへの出力
全体的に精度が高いとは言いにくく(AIというよりOCR精度の問題)手直しは必要ですが、解析不能でもエラーにならず止まらないのがAIのメリットですね。 -
メリット・デメリット
✅ メリット
❌ デメリット
まとめ:PADのOCRとChatGPTを組み合わせれば、無料でもここまでできる!
Power Automate DesktopのOCR単体では限界がある…
だけど、ChatGPTの言語処理力を使えば、曖昧なデータからでも意味ある情報が抽出可能です。
正規表現では対応しきれないOCRの「揺れ」や「ズレ」も、AIが補完してくれることで、業務自動化がより現実的なものになります。
「超低コストで業務効率化したい」
「ChatGPT APIをもっと実務に活かしたい」
という方には、ぜひ試していただきたい仕組みです。
💡 もっと詳しく自動化やAPI連携を極めたい方へ:
AIとPower Automate Desktopを組み合わせた業務自動化に興味がある方には、以下のような書籍もおすすめです👇
![]() |
Power Automate for desktop×ChatGPT業務自動化開発入門 RPAとAIによる自動化&効率化テクニック 新品価格 |
RPAとAIによる効率化テクニックが実践的に学べる一冊です。
筆者のように、初心者からステップアップしたい方にもピッタリ!
▼この記事が役に立ったらブックマークをお願いします