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

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

Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン

Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン

OCRした請求書や受信したメール本文から日付や請求金額だけを抜き出したい場面は、業務でよくあるものです。

しかし、「正規表現」と聞くと難しそうに感じることも多いでしょう。

そこで今回は、受信したメールから請求金額だけを抽出する方法を、正規表現を使うケースと使わないケースの2通りで紹介します。


正規表現を使わない方法

まず、メール本文を取り出します。

※メール本文の抽出方法については、以下の記事を参照ください。

keiridx.net

例として、メール本文に「お支払い金額は ¥12,345 です。」と書かれているとします。

テキストのトリミングアクションを使う

  1. 元のテキスト:取り出したメールのテキスト(例:%EmailBody%

  2. モード:「指定された2つのフラグの間にあるテキストを取得する」

  3. 開始フラグ:「お支払い金額は」

  4. 終了フラグ:「です。」

    Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン

変数%CroppedText%の中に「¥12,345」が格納されます。

これを「テキストの数値に変換」アクションを使って数値化する、もしくはそのままテキストとして利用できます。

Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン


正規表現を使う方法

テキストを置換するアクションを使用する

  1. 解析するテキスト%EmailBody%

  2. 検索するテキスト.*?(¥?\d[\d,]*円?).*

  3. 置き換え先のテキスト$1

  4. 「検索と置換に正規表現を使う」にチェックを入れる

    Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン

変数%Replaced%に「¥12,345」が格納されます。

Power Automate Desktopを使って請求金額を抜き出す|正規表現ありなし2パターン


◆ 何が違うのか?

どの方法を使ってもテキストが取得できれば問題ありません

しかし、正規表現を使う場合、テキストを取得しやすくなります。

例えば、正規表現を使わない方法では「お支払い金額は」が「ご請求額は」に変わると取得できません。また、実際に実務では開始や終了のフラグがなく、いきなり「12,345円」などの金額が発生することも少なくありません。

そこで、正規表現を使うと、「このルールに合うテキストを探す」という指示ができるため、さまざまなケースに対応可能です。


◆ 金額を抜き出すための正規表現ルール

  1. 数字を探す\d+

  2. 3桁区切りのカンマがあるかもしれない.*?(\d{1,3}(,\d{3})*)

  3. 通貨記号 ¥ や 円 がつくかもしれない.*?(¥?\d{1,3}(,\d{3})*円?).*

📌 このルールを使うと…

テスト文字列 抜き出せる値
お支払い金額は ¥12,345円 です。 ¥12,345円 ✅
請求額 123,456 円 123,456円 ✅
残高: ¥1,234,567 ¥1,234,567 ✅
合計 56789 56789 ✅
12.34ドル 取れない ❌(円のみを対象にしているため)

※一般的には .*?(¥?\d{1,3}(,\d{3})*円?).* が適切に思えるかもしれませんが、Power Automate Desktopでは .*?(¥?\d[\d,]*円?).* の方が正しく動作するため、この記事ではこちらを使用しています。


◆ まとめ

正規表現なし:特定のフレーズが固定されているならOK
正規表現あり:異なる表現や形式にも対応できる

正規表現は難しく感じることもあるかもしれませんが、基本的にはコピペでOKです。

(かくいう筆者も正規表現アレルギーなので、基本的には何も理解しておりません。動けばいいのです…)

実際に試してみて、自分に合う方法を選んでいきましょう!

▼抜き出した金額を使って請求書を発行する

keiridx.net

▼複数添付ファイルをつけて送信

keiridx.net

▼ 役に立ったらブックマークお願いします!

Power Automate or Power Automate Desktopでoutlookメールを転送する方法|デスクトップフローVSクラウドフロー

Power Automate or Power Automate Desktopでoutlookメールを転送する方法|デスクトップフローVSクラウドフロー
人気ブログランキング