メールで受信したExcelを25日基準で仕分けしてSharePointに保存する方法

Power Automate
ゆり
ゆり

Excelファイルをメールで受信した日が、
25日以下の場合は当月、26日以上の場合は翌月の
ドキュメントライブラリに自動で振り分けるフローをご紹介します!

フロー全体像

前準備

まずは前準備として、Excelファイルを保存するための SharePoint ドキュメントライブラリを 1 つ作成します。

今回は例として「2025」というドキュメントライブラリを作成しました。

フローの作り方

新しいメールが届いたとき(V3)

トリガーは、Outlookの「新しいメールが届いたとき(V3)」にします。
詳細パラメーターは、以下の通りにします。

添付ファイルを含めるはい
添付ファイル付きのみはい

今回は受信トレイを対象にしたいので、フォルダーは「Inbox」のままにします。

アレイのフィルター処理

Excelファイルのみを対象にするために、「アレイのフィルター処理」アクションを追加します。
各パラメーターは、以下の通りにします。

From新しいメールが届いたとき(V3)の添付ファイル

Filter Queryには、詳細モードにして以下式を入力します。

endswith(item()?['name'], '.xlsx')

endswith関数を使うことで、ファイル名が.xlsxで終わるかを判定します。

作成(1個目)

現在の日付の “日” (1~31) を、日本時間 (JST) で取得するために、「作成」アクションを追加します。

この後に作成アクションをもう一つ追加するので、「作成:日」というアクション名にしました。
入力には、以下式を入力します。

dayOfMonth(addHours(utcNow(),9))

今日が3月25日なら、「25」という値を作成します。
今日が3月26日なら、「26」という値を作成します。

作成(2個目)

作成:日」アクション の値が 25より大きい かどうかを判定するために、「作成」アクションを追加します。

この前に作成アクションが既にあるので、分かりやすく「作成:月」というアクション名にしました。
入力には、以下式を入力します。

if(greater(outputs('作成:日'),25),
    first(split(addDays(startOfMonth(addToTime(addHours(utcNow(),9),1,'Month')),24),'T')),
    first(split(addDays(startOfMonth(addHours(utcNow(),9)),24),'T'))
)

今日が3月25日なら、”2025-03-25″という値を作成します。
今日が3月26日なら、”2025-04-25″という値を作成します。

ファイルの作成

SharePointドキュメントライブラリにExcelファイルを保存するために、SharePointの「ファイルの作成」アクションを追加します。

各パラメーターは、以下の通りにします。

サイトのアドレス前準備で作成したドキュメントライブラリがあるSharePointサイト
ファイル名アレイのフィルター処理の「添付ファイル 名前」
ファイルコンテンツアレイのフィルター処理の「添付ファイル コンテンツ」

フォルダーのパスには、以下式を入力します。

concat('/2025/', outputs('作成:月'))

ファイル名とファイルコンテンツを設定すると、自動でFor eachが設定されます。

今日が3月25日なら、”2025-03-25″というフォルダをドキュメントライブラリの中に作成します。
今日が3月26日なら、”2025-04-25″というフォルダをドキュメントライブラリの中に作成します。

concat関数の‘/2025/’の部分は、Excelを自動保存したいドキュメントライブラリのパスを指しています。

実際に実行してみる

2025年3月24日に実際に実行してみました。
「2025」ドキュメントライブラリに、”2025-03-25″というフォルダが作成されて、Excelファイルが自動保存されました。

作成アクションを少しいじり、26日に実行した設定にしてみました。
26日以上なので、翌月の”2025-04-25″というフォルダが作成されて、Excelファイルが自動保存されました。

コメント

タイトルとURLをコピーしました