払出データ 日次集計 v3 フローの設定手順

払出フロー構築ガイド

Power Automate で、関東のフローを4本(段階1:当月用・前月確定用、段階2、翌月の月次ブックのボタン)作る手順です。上から順に、画面の欄へ書いてある値を入れていきます。式・スキーマ・メール本文は[コピー]で取れます。各手順の右上の「済」に印を付けると、この端末に残ります。

 このページを印刷すると、ナビゲーションと「済」の印を外した手順書になります。同じ内容の Word 版(03【手順書】払出データ日次集計_設定手順書)もお渡ししています。

入力そのまま打つ 選ぶ一覧・フォルダーのアイコンから選ぶ ⚡ 動的なコンテンツ稲妻のアイコンから選ぶ fx 式fx を押して式を貼る 貼り付けコピーして貼る

はじめに

画面の使い方(新しいデザイナー)

アクションを足す

前のアクションの下の[+]→ 検索欄にアクション名を入れて選びます。「True(はい)の中」と書いた手順は、条件の[True]側の[+]から足します。

名前を変える

右に開く設定の一番上のアクション名をクリックして書き換えます。式がこの名前で前のアクションを探すので、表記どおりにしてください。

式を入れる

欄をクリックすると右に ⚡ と fx が出ます。fx を押し、式をそのまま貼って[追加]。

隠れている欄

フォルダーやスクリプトの引数は[詳細パラメーター]の[すべて表示]で出ます。

はじめに

準備(構築の前に)

これが揃っていると、当日はフローの組み立てだけで済みます。

10/13 の変更

投入フォルダを「当月」と「前月確定」の2つに

月初の数日(毎月変わる)は、前月末日の集計が毎日更新されることがあります。その最新データは「前月確定」フォルダに置いて前月の月次ブックを最新にし、当月のデータは「当月」フォルダに置いて毎日前日と比べます。月初は2つが並行して動きます。比べる版と入れる月次ブックは、ファイル名の日付と払出日で自動で決まります。

置くフォルダ/置く名前加工後での名前比べる版(加工後フォルダ)入れる月次ブック
当月/払出データ_20260702.xlsx払出データ_20260702.xlsx前日の版(例 20260701)関東2607◆最新
前月確定/払出データ260630(加工前).xlsx払出データ_20260630-1.xlsx(番号は仕組みが付ける)20260630(7月分は見ない)関東2606◆最新
前月確定/同じ名前でもう一度払出データ_20260630-2.xlsx20260630-1関東2606◆最新
  • フォルダ:/払出データ/投入/関東/当月 と /払出データ/投入/関東/前月確定。段階1のフローは2本(中身は同じで、#1 のフォルダーと #3 の mode だけ違う)。
  • 名前は基幹の名前のまま、毎日同じでよい(日付が入っていること)。加工後に同じ日付の版があれば、仕組みが -1、-2 … を付けます。数字が大きいほど新しい版です。
  • 加工後フォルダ(/払出データ/加工後/関東)に版ごとにブックが残ります。判定と「更新」は、一番新しい版で行います。
  • 月次ブックは「前回この仕組みが書いた値のままのセル」だけを新しい値に更新します。人が書き換えたセルは上書きせず、完了メールに一覧で出ます。
  • 止まる場面:前月の日付を当月フォルダに置いた/当月の日付を前月確定フォルダに置いた/古い版で「更新」した/月次ブックの月とデータの月が違う。どれもメッセージに理由と直し方が出ます。
  • 翌月の月次ブックは、今月の月次ブックを選んでボタン(払出_翌月の月次ブック_関東)を押すと作られます。押す担当・時刻は決めません(下の「フロー 3」)。

フロー 1

段階1 払出_段階1_照合_関東(当月)/(前月確定)

自動化したクラウド フロー投入フォルダにファイルが作られると動く2本(1本作って複製し、#1 と #3 だけ変える)所有者のアカウントで動く
  1. 0

    フローを作る(2本:当月用と前月確定用)

    [作成]→[自動化したクラウド フロー]

    フロー名
    入力払出_段階1_照合_関東(当月)

    1本目(当月用)を最後まで作って保存したら、[…]→[名前を付けて保存]で複製し、名前を「払出_段階1_照合_関東(前月確定)」にします。複製した方は #1 のフォルダーと #3 の mode だけ変えます

    払出_段階1_照合_関東(当月)
    トリガー
    選ぶ「ファイルが作成されたとき (プロパティのみ)」(SharePoint)

    検索欄に「プロパティのみ」と入れると出ます。似た名前の「作成または変更されたとき」ではない方

  2. 1

    ファイルが作成されたとき (プロパティのみ)

    SharePoint
    サイトのアドレス
    選ぶ業務部サイト
    ライブラリ名
    選ぶドキュメント
    フォルダー
    選ぶ/払出データ/投入/関東/当月(前月確定用のフローは /払出データ/投入/関東/前月確定)

    [詳細パラメーター]の[すべて表示]を押すと出ます

    [設定]タブ → 同時実行管理
    選ぶ制限=オン/並列処理の水準=1

    同じフォルダに続けて置いても、1つずつ順に処理します。待っている間は「トリガー コンカレンシー スロットリング」の表示が出ますが、正常です(10/7 実機)

    当月の日付のデータは「当月」フォルダ、月初の数日(毎月変わる)に前月末日の集計が更新されたら、その最新データを「前月確定」フォルダに置きます。2本のフローは並行して動きます。どちらのフォルダも毎日同じ名前(基幹の名前のまま)で置いてよく、加工後フォルダに同じ日付の版があれば、仕組みが -1、-2 … を付けます。加工後フォルダは投入フォルダの中に作らないでください。

  3. 2

    フォルダーの一覧

    SharePoint

    名前を 加工後の一覧 に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル識別子
    選ぶ/払出データ/加工後/関東

    欄の右のフォルダーのアイコンから選びます

    加工後フォルダにある「日付つきの版」の一覧です。次のスクリプトが、この中から比べる版を選びます。

  4. 3

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 比較元の選択 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    ⚡ 動的なコンテンツトリガーの「ファイル識別子」
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_比較元の選択_v3.osts
    ScriptParameters/listJson
    fx 式string(body('加工後の一覧'))
    string(body('加工後の一覧'))
    ScriptParameters/fileName
    ⚡ 動的なコンテンツトリガーの「ファイル名(拡張子付き)」

    画面では body/{FilenameWithExtension} と表示されます

    ScriptParameters/mode
    入力当月(前月確定用のフローは 前月確定)

    [詳細パラメーター]の[すべて表示]で出ます。today は空のまま

    置いたフォルダと日付の月を確かめます(当月フォルダに前月の日付、前月確定フォルダに当月の日付のファイルが置かれたら止めて、正しいフォルダを知らせます)。加工後フォルダに同じ日付の版があれば次の番号を付け、加工後で使う名前(saveName:払出データ_20260630-1.xlsx など)を返します。比較元は、そのファイルより「前」で一番新しい版です(前月確定は一つ前の前月末日の版、当月は前日の版)。

  5. 4

    JSON の解析

    データ操作

    名前を 比較元 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('比較元の選択')?['body/result'])
    json(outputs('比較元の選択')?['body/result'])
    スキーマ
    貼り付けスキーマ⓪(下のボタンでコピー)
    {"type":"object","properties":{"file":{"type":"string"},"key":{"type":"string"},"date":{"type":"string"},"ver":{"type":"integer"},"ym":{"type":"string"},"dataYm":{"type":"string"},"mode":{"type":"string"},"today":{"type":"string"},"saveName":{"type":"string"},"renumbered":{"type":"boolean"},"prevId":{"type":"string"},"prevName":{"type":"string"},"prevKey":{"type":"string"},"candidates":{"type":"integer"},"newer":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}}}}
  6. 5

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 前日最新版の書き出し に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    fx 式比較元の版(無ければ投入ファイル自身)

    比較元が無い(初回)ときは投入ファイル自身を渡すので、全行が未判定になります

    if(empty(body('比較元')?['prevId']), triggerOutputs()?['body/{Identifier}'], body('比較元')?['prevId'])
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_ステップ0_前日最新版の書き出し_v2.osts

    このスクリプトに引数はありません。10/6 版はブックを「払出データ_最新版_関東.xlsx」に固定していましたが、選ばれた版を読むように変えます。

  7. 6

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 照合 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    ⚡ 動的なコンテンツトリガーの「ファイル識別子」
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_ステップ1_照合_v3.osts
    ScriptParameters/optionsJson
    貼り付け{"areaPrefix":"2"}

    [詳細パラメーター]の[すべて表示]で出ます。関東は 2/中部は 1/関西は 3。10/14 のデータから基幹の「振替後増減種別」が入ります。前の版で人が直した値は残し、それ以外は基幹の値を初期値に使います(既定。振替後の2列は原則人が直すため)。基幹の値を正とする場合だけ {"areaPrefix":"2","fzMode":"kikan"}

    {"areaPrefix":"2"}
    ScriptParameters/prevJson
    fx 式outputs('前日最新版の書き出し')?['body/result']
    outputs('前日最新版の書き出し')?['body/result']
  8. 7

    JSON の解析

    データ操作

    名前を 照合結果 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('照合')?['body/result'])
    json(outputs('照合')?['body/result'])
    スキーマ
    貼り付けスキーマ①(下のボタンでコピー)
    {"type":"object","properties":{"rows":{"type":"integer"},"carry":{"type":"integer"},"todo":{"type":"integer"},"todoTop":{"type":"array","items":{"type":"object","properties":{"管理連番":{"type":"string"},"得意先略称":{"type":"string"},"払出商品CD":{"type":"string"},"増減種別区分":{"type":"string"},"払出日":{"type":"string"},"担当営業名":{"type":"string"},"金額":{"type":"number"}}}},"unmapped":{"type":"array","items":{"type":"object","properties":{"自社CD":{"type":"string"},"部CD":{"type":"string"},"担当営業名":{"type":"string"},"件数":{"type":"integer"}}}},"prevSource":{"type":"string"},"prevRows":{"type":"integer"},"areaPrefix":{"type":"string"},"columns":{"type":"array"},"warnings":{"type":"array"}}}
  9. 8

    遅延

    スケジュール

    名前を 待ち時間 に変える(式の中でこの名前を使います)

    カウント
    入力6
    単位
    選ぶ分

    Excel のコネクタが使ったファイルは、最後に使ってから最大6分ロックされることがあります(Microsoft の Excel Online (Business) コネクタの既知の制限)。次の「ファイル コンテンツの取得」「ファイルの削除」が失敗しないよう待ちます。

  10. 9

    ファイル コンテンツの取得

    SharePoint

    名前を 投入ファイルの中身 に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル識別子
    ⚡ 動的なコンテンツトリガーの「ファイル識別子」

    照合が終わった投入ファイルの中身を取ります。

  11. 10

    ファイルの作成

    SharePoint

    名前を 加工後へ に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    フォルダーのパス
    選ぶ/払出データ/加工後/関東
    ファイル名
    fx 式body('比較元')?['saveName']

    払出データ_20260630-1.xlsx のような、版の番号つきの名前になります

    body('比較元')?['saveName']
    ファイル コンテンツ
    ⚡ 動的なコンテンツ「投入ファイルの中身」の「ファイル コンテンツ」

    加工後フォルダに、版の名前で置きます。これが判定するブックになります(10/7 版の「ファイルの移動」の代わり。移動では名前を変えられないため、作成+削除にしています)。

  12. 11

    ファイルの削除

    SharePoint

    名前を 投入から削除 に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル識別子
    ⚡ 動的なコンテンツトリガーの「ファイル識別子」

    投入フォルダを空にします。

  13. 12

    条件

    コントロール

    名前を 未判定あり に変える(式の中でこの名前を使います)

    左の値
    fx 式int(string(body('照合結果')?['todo']))
    int(string(body('照合結果')?['todo']))
    比べ方
    選ぶ次の値より大きい
    右の値
    入力0
  14. 13

    HTML テーブルの作成

    データ操作True(はい)の中

    名前を 未判定一覧 に変える(式の中でこの名前を使います)

    開始
    fx 式body('照合結果')?['todoTop']
    body('照合結果')?['todoTop']
    列
    選ぶ自動
  15. 14

    メールの送信 (V2)

    Office 365 OutlookTrue(はい)の中、13 の下

    名前を 未判定のお知らせ に変える(式の中でこの名前を使います)

    宛先
    入力判定する方のメールアドレス
    件名
    貼り付け件名①(下のボタンでコピー)

    件名の欄にそのまま貼り付けると、@{…} の所が式として入ります

    【払出データ】未判定 @{body('照合結果')?['todo']} 件(@{body('比較元')?['key']}・@{body('比較元')?['mode']})
    本文
    貼り付けメール本文①(下のボタンでコピー)

    本文の欄を[コード ビュー](</>)に切り替えてから貼り付け。★の所を加工後フォルダ(/払出データ/加工後/関東)の URL に差し替え

    払出データ(@{body('比較元')?['key']}・@{body('比較元')?['mode']}フォルダ)を、前の版(@{body('比較元')?['prevKey']})と照合しました。<br>
    ・取り込み行数:@{body('照合結果')?['rows']} ・前の版から引き継ぎ:@{body('照合結果')?['carry']} ・未判定:@{body('照合結果')?['todo']}<br>
    ・ブロック対応表に無い課:@{length(body('照合結果')?['unmapped'])} 課(あれば入力用1のブロックとブロック対応表への追加が必要です)<br>
    @{if(empty(body('比較元')?['warnings']), '', concat('・注意:', join(body('比較元')?['warnings'], '/'), '<br>'))}
    <br>
    加工後フォルダの「@{body('比較元')?['saveName']}」を開き、区分=「未判定」でフィルターして、必要な行だけ「振替後増減種別」「振替後担当営業名」を直してください。<br>
    直し終えたら、SharePoint のファイル一覧でこのブックを選び […]→[統合]→[フロー]→「払出_更新_関東」を実行してください。<br>
    <a href="★">加工後フォルダを開く</a><br>
    <br>
    【未判定の先頭20件】<br>
    @{body('未判定一覧')}
  16. 15

    (何も置かない)

    False(いいえ)

    未判定が0件の日もメールが欲しい場合は、ここにメールの送信 (V2) を置きます。

最後に右上の[保存]。保存で止まる場合は、エラーの出たアクションの欄が空になっていないかを見ます。

フロー 2

段階2 払出_更新_関東

インスタント クラウド フローSharePoint の[…]→[統合]→[フロー]から押す押した人のライセンスで動く
  1. 0

    フローを作る

    [作成]→[インスタント クラウド フロー]

    フロー名
    入力払出_更新_関東

    未判定のお知らせメールの本文に、この名前が書いてあります

    払出_更新_関東
    トリガー
    選ぶ「選択したファイルの場合」(SharePoint)

    一覧に無ければ[スキップ]してデザイナーで追加します

  2. 1

    選択したファイルの場合

    SharePoint
    サイトのアドレス
    選ぶ業務部サイト
    ライブラリ名
    選ぶドキュメント

    SharePoint では、加工後フォルダのブックを選んで[…]→[統合]→[フロー]に出ます(10/6 実機)。出るのは既定の環境にあるフローだけです(Microsoft の SharePoint コネクタの既知の問題)。

  3. 2

    ファイルのプロパティの取得

    SharePoint

    名前を 対象ファイル に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ライブラリ名
    選ぶドキュメント
    ID
    ⚡ 動的なコンテンツトリガーの「ID」

    選択したファイルのトリガーは ID しか渡さないため、ここでスクリプトに渡せる「識別子」に変えます。

  4. 3

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 更新 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    ⚡ 動的なコンテンツ「対象ファイル」の「識別子」
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_ステップ2_更新と集計_v3.osts
    ScriptParameters/optionsJson・aggJson
    入力どちらも空欄のまま

    空欄だと更新モード(区分の確定と集計)で動きます

    押す前にブックを閉じてください。更新モードは、払出日からデータの月(ym=2606 など)を、ブックの名前から版(20260630-1 など)を返します。

  5. 4

    JSON の解析

    データ操作

    名前を 更新結果 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('更新')?['body/result'])
    json(outputs('更新')?['body/result'])
    スキーマ
    貼り付けスキーマ②(下のボタンでコピー)
    {"type":"object","properties":{"mode":{"type":"string"},"rows":{"type":"integer"},"filledZ":{"type":"integer"},"filledE":{"type":"integer"},"kbnAssigned":{"type":"integer"},"kbnChanged":{"type":"integer"},"todoAfter":{"type":"integer"},"aggKeys":{"type":"integer"},"unmappedKeys":{"type":"integer"},"sundayShifted":{"type":"integer"},"badDate":{"type":"integer"},"input1":{"type":"string"},"written":{"type":"integer"},"skipped":{"type":"array","items":{"type":"string"}},"kbnTarget":{"type":"array","items":{"type":"string"}},"unknownCodes":{"type":"array"},"unmapped":{"type":"array"},"excluded":{"type":"array"},"notTarget":{"type":"array"},"agg":{"type":"object"},"auditRows":{"type":"array"},"ym":{"type":"string"},"source":{"type":"string"},"sourceKey":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}}}
  6. 5

    パスによるファイル メタデータの取得

    SharePoint

    名前を 月次ブック に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル パス
    fx 式concat('/Shared Documents/払出データ/月次/関東', body('更新結果')?['ym'], '◆最新.xlsx')

    先頭の /Shared Documents はドキュメント ライブラリの名前です。一度フォルダーのアイコンで月次ブックを選ぶと、御社サイトでの書き方が表示されるので、それに合わせてください

    concat('/Shared Documents/払出データ/月次/関東', body('更新結果')?['ym'], '◆最新.xlsx')

    データの月の月次ブック(関東2606◆最新.xlsx など)を選びます。前月末日の出し直しは前月のブックへ、当月分は当月のブックへ、自動で振り分けられます。翌月の月次ブックは月初の最初の更新までに /払出データ/月次 に置いておきます。

  7. 6

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 転記 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    fx 式body('月次ブック')?['Id']

    ⚡ から「月次ブック」の「ID」を選んでも同じです

    body('月次ブック')?['Id']
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_ステップ2_更新と集計_v3.osts
    ScriptParameters/optionsJson
    入力空欄のまま
    ScriptParameters/aggJson
    fx 式outputs('更新')?['body/result']

    ここに値が入ると転記モード(入力用1へ記入)で動きます

    outputs('更新')?['body/result']

    月次ブックの名前の4桁(2606)とデータの月が違うとき、また月次ブックに転記済みの版より古い版のときは、書かずに止まります。前回この仕組みが書いた値のままのセルは新しい値に更新し、人が書き換えたセルは上書きしません。

  8. 7

    JSON の解析

    データ操作

    名前を 転記結果 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('転記')?['body/result'])
    json(outputs('転記')?['body/result'])
    スキーマ
    貼り付けスキーマ③(下のボタンでコピー)
    {"type":"object","properties":{"mode":{"type":"string"},"written":{"type":"integer"},"updated":{"type":"integer"},"cleared":{"type":"integer"},"same":{"type":"integer"},"formulaSkipped":{"type":"integer"},"aggKeys":{"type":"integer"},"updates":{"type":"array","items":{"type":"string"}},"diffs":{"type":"array","items":{"type":"string"}},"skipped":{"type":"array","items":{"type":"string"}},"zones":{"type":"array","items":{"type":"string"}},"book":{"type":"string"},"ym":{"type":"string"},"source":{"type":"string"},"prevSource":{"type":"string"}}}
  9. 8

    メールの送信 (V2)

    Office 365 Outlook

    名前を 完了のお知らせ に変える(式の中でこの名前を使います)

    宛先
    入力お知らせを受け取る方のメールアドレス
    件名
    貼り付け件名②(下のボタンでコピー)

    件名の欄にそのまま貼り付けます

    【払出データ】更新完了 @{body('更新結果')?['sourceKey']}(入力用1へ @{body('転記結果')?['written']} セル/うち更新 @{body('転記結果')?['updated']}/人の入力と違う値 @{length(body('転記結果')?['diffs'])} 件)
    本文
    貼り付けメール本文②(下のボタンでコピー)

    本文の欄を[コード ビュー](</>)に切り替えてから貼り付け

    「更新」の結果です(@{body('更新結果')?['sourceKey']} → @{body('転記結果')?['book']})。<br>
    ・空欄を補完:増減種別 @{body('更新結果')?['filledZ']} 件/担当営業名 @{body('更新結果')?['filledE']} 件<br>
    ・区分を確定:@{body('更新結果')?['kbnAssigned']} 件(前の版の判定から変わった:@{body('更新結果')?['kbnChanged']} 件)<br>
    ・未判定のまま:@{body('更新結果')?['todoAfter']} 件(増減種別が表に無いコード。区分を手入力してください)<br>
    ・ブロック対応表に無い課:@{length(body('更新結果')?['unmapped'])} 課(集計シートに「その他(要マッピング)」で残しています)<br>
    @{if(empty(body('更新結果')?['warnings']), '', concat('・注意:', join(body('更新結果')?['warnings'], '/'), '<br>'))}
    <br>
    ・入力用1へ記入:@{body('転記結果')?['written']} セル(うち、前回この仕組みが書いた値を新しい値に更新:@{body('転記結果')?['updated']} セル)<br>
    ・今回の集計に無くなったため空にした:@{body('転記結果')?['cleared']} セル<br>
    ・同じ値:@{body('転記結果')?['same']} セル/人が入力した値と違う:@{length(body('転記結果')?['diffs'])} セル(上書きしていません)<br>
    ・数式のため書かなかったセル:@{body('転記結果')?['formulaSkipped']}<br>
    <br>
    【更新・空にしたセル(先頭から)】<br>
    @{join(take(body('転記結果')?['updates'], 30), '<br>')}<br>
    <br>
    【人が入力した値と違うセル(先頭から)】<br>
    @{join(take(body('転記結果')?['diffs'], 30), '<br>')}<br>
    <br>
    【書けなかったもの】<br>
    @{join(body('転記結果')?['skipped'], '<br>')}
  10. 9

    判定する人がボタンを押せるようにする

    フローの詳細画面 →[実行のみのユーザー]→[編集]

    ユーザー
    入力判定する方(各地域の担当)を追加
    接続
    選ぶSharePoint・Excel・Outlook の接続を、所有者のものを使うか、押した方のものを使うか選ぶ

    所有者の接続を使うと、ファイルへの権限とメールの送信元も所有者になります

    押した方の Microsoft 365 ライセンスで動きます。標準のコネクタだけなので追加のライセンスは要りません(Microsoft の Power Automate ライセンス FAQ)。

フロー 3

翌月の月次ブック 払出_翌月の月次ブック_関東

インスタント クラウド フロー今月の月次ブックを選んで[…]→[統合]→[フロー]から押す押す担当・時刻は決めない

10/13 のお打合せで、翌月の月次ブックを用意する担当・時刻は決めず、ボタンで作ることにしました。今月の月次ブックの写しを翌月の名前で /払出データ/月次 に置き、月の表示・日付の見出し・稼働日数を翌月にし、前の月の入力を空にします。予算と稼働日数のセルは黄色にするので、翌月の値に直してください。段階2が翌月分を記入する前(月初の最初の更新まで)に押します。

  1. 0

    フローを作る

    [作成]→[インスタント クラウド フロー]

    フロー名
    入力払出_翌月の月次ブック_関東
    払出_翌月の月次ブック_関東
    トリガー
    選ぶ「選択したファイルの場合」(SharePoint)

    段階2と同じトリガーです。一覧に無ければ[スキップ]してデザイナーで追加します

  2. 1

    選択したファイルの場合

    SharePoint
    サイトのアドレス
    選ぶ業務部サイト
    ライブラリ名
    選ぶドキュメント

    押す方は /払出データ/月次 で今月の月次ブック(関東2610◆最新.xlsx など)を選び、[…]→[統合]→[フロー]→「払出_翌月の月次ブック_関東」を押します。押す担当・時刻は決めません(10/13 のお打合せ)。

  3. 2

    ファイルのプロパティの取得

    SharePoint

    名前を 対象ブック に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ライブラリ名
    選ぶドキュメント
    ID
    ⚡ 動的なコンテンツトリガーの「ID」
  4. 3

    ファイル コンテンツの取得

    SharePoint

    名前を 今月の中身 に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル識別子
    ⚡ 動的なコンテンツ「対象ブック」の「識別子」

    スクリプトより先に中身を取ります(Excel のコネクタが使った直後のファイルはロックされることがあるため)。

  5. 4

    フォルダーの一覧

    SharePoint

    名前を 月次の一覧 に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    ファイル識別子
    選ぶ/払出データ/月次

    欄の右のフォルダーのアイコンから選びます

    翌月のブックがもうあるかを、次のスクリプトが確かめます(あれば止まり、上書きしません)。

  6. 5

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 名前の確認 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    ⚡ 動的なコンテンツ「対象ブック」の「識別子」
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_月次ブックの翌月準備_v1.osts
    ScriptParameters/mode
    入力名前
    名前
    ScriptParameters/listJson
    fx 式string(body('月次の一覧'))
    string(body('月次の一覧'))

    選んだブックは読むだけで、書き換えません。月次ブックでないブック(加工後のブックなど)を選んだとき、名前に4桁の年月が無いとき、翌月のブックがもうあるときは止まります。

  7. 6

    JSON の解析

    データ操作

    名前を 翌月の名前 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('名前の確認')?['body/result'])
    json(outputs('名前の確認')?['body/result'])
    スキーマ
    貼り付けスキーマ④(下のボタンでコピー)
    {"type":"object","properties":{"mode":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"nextName":{"type":"string"},"warnings":{"type":"array"}}}
  8. 7

    ファイルの作成

    SharePoint

    名前を 翌月のブック に変える(式の中でこの名前を使います)

    サイトのアドレス
    選ぶ業務部サイト
    フォルダーのパス
    選ぶ/払出データ/月次
    ファイル名
    fx 式body('翌月の名前')?['nextName']

    関東2611◆最新.xlsx のような、翌月の名前になります

    body('翌月の名前')?['nextName']
    ファイル コンテンツ
    ⚡ 動的なコンテンツ「今月の中身」の「ファイル コンテンツ」

    今月のブックの写しを、翌月の名前で置きます。

  9. 8

    SharePoint ライブラリからスクリプトを実行する

    Excel Online (Business)

    名前を 準備 に変える(式の中でこの名前を使います)

    ブックの場所
    選ぶ業務部サイト
    ブック ライブラリ
    選ぶドキュメント
    ブック
    fx 式body('翌月のブック')?['Id']

    ⚡ から「翌月のブック」の「ID」を選んでも同じです

    body('翌月のブック')?['Id']
    スクリプトの場所
    選ぶ業務部サイト
    スクリプト ライブラリ
    選ぶドキュメント
    スクリプト
    選ぶ/Office Scripts/払出_月次ブックの翌月準備_v1.osts
    ScriptParameters/mode
    入力準備
    準備
    ScriptParameters/listJson
    入力空欄のまま

    翌月のブックの中を直します:月の表示(2026年10月度 → 2026年11月度)、当月データの日付の見出し(最初の6日の日番号・曜日。7日目からは今の「+7」の数式のまま)、稼働日数(日曜を除いた日数・黄色)、予算(値は残して黄色)、入力用1の前の月の入力を空に、「集計」シートを消す。数式・グラフ・書式は変えません。

  10. 9

    JSON の解析

    データ操作

    名前を 準備結果 に変える(式の中でこの名前を使います)

    コンテンツ
    fx 式json(outputs('準備')?['body/result'])
    json(outputs('準備')?['body/result'])
    スキーマ
    貼り付けスキーマ⑤(下のボタンでコピー)
    {"type":"object","properties":{"mode":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"nextName":{"type":"string"},"labels":{"type":"array"},"dayRows":{"type":"integer"},"kado":{"type":"string"},"budgetCells":{"type":"integer"},"cleared":{"type":"integer"},"auditDeleted":{"type":"boolean"},"warnings":{"type":"array"}}}
  11. 10

    メールの送信 (V2)

    Office 365 Outlook

    名前を できたお知らせ に変える(式の中でこの名前を使います)

    宛先
    入力お知らせを受け取る方のメールアドレス(押した方にする場合は、トリガーの「ユーザーのメール」)
    件名
    貼り付け件名③(下のボタンでコピー)

    件名の欄にそのまま貼り付けます

    【払出データ】翌月の月次ブックを作りました @{body('翌月の名前')?['nextName']}
    本文
    貼り付けメール本文③(下のボタンでコピー)

    本文の欄を[コード ビュー](</>)に切り替えてから貼り付け

    今月の月次ブック「@{outputs('対象ブック')?['body/{FilenameWithExtension}']}」から、翌月の月次ブック「@{body('翌月の名前')?['nextName']}」を /払出データ/月次 に作りました。<br>
    ・月の表示:@{length(body('準備結果')?['labels'])} か所を翌月に<br>
    ・当月データの日付の見出し:@{body('準備結果')?['dayRows']} 行(日番号・曜日)を翌月に<br>
    ・稼働日数:@{body('準備結果')?['kado']}<br>
    ・入力用1:前の月の入力 @{body('準備結果')?['cleared']} セルを空に<br>
    ・予算:@{body('準備結果')?['budgetCells']} セルを黄色に(前の月の値のまま)<br>
    <br>
    次にしていただくこと<br>
    1. 黄色のセル(予算・稼働日数)を翌月の値にしてください。稼働日数は日曜だけを除いた日数で、祝日は引いていません。<br>
    2. 全国費用・最終配賦率など、ほかの手入力の値は前の月のままです。必要なら直してください。<br>
    <br>
    メモ:@{join(body('準備結果')?['warnings'], ' / ')}
  12. 11

    押す方を足す

    フローの詳細画面 →[実行のみのユーザー]→[編集]

    ユーザー
    入力翌月のブックを作る可能性のある方を追加(担当は決めない)
    接続
    選ぶ段階2と同じ考え方で、所有者の接続か押した方の接続かを選ぶ

    段階2と同じく標準のコネクタだけなので、押した方の Microsoft 365 ライセンスで動きます。

仕上げ

試す(6/18 のデータで)

下の数字は、加工後フォルダに 6/17 の加工後を置き、6/18 の加工前を投入した場合のものです。「07 完成イメージ」フォルダは 10/6 版(最新版ブック1つ)の形です。

  1. 前日分と当日分を用意する加工後フォルダ:6/17 の加工後ファイルを 払出データ_20260617.xlsx の名前で。投入:6/18 の加工前ファイルを 払出データ_20260618.xlsx の名前で。月次:関東2606◆最新 のコピー
  2. 投入フォルダに 6/18 のファイルを保存する数分で段階1が動きます(待ち時間の6分を含みます)。フローの[実行履歴]で全部のアクションが緑になり、6/18 のファイルが加工後フォルダに移れば成功
  3. 未判定のお知らせが届くか件名に(20260618)。当社の検証では 関東 15,969行/前の版から引き継ぎ 14,580行/未判定 1,389行
  4. 加工後フォルダの 払出データ_20260618.xlsx を開く区分=「未判定」でフィルターすると黄色の行だけが出ます。必要な行の I列・S列を直して、ブックを閉じます
  5. そのブックを選び […]→[統合]→[フロー]→ 払出_更新_関東完了のお知らせの件名に 20260618 と月次ブック名。月次ブックのコピーの入力用1と「集計」シート(J1:K1 に転記した版)を確かめる
  6. 同じ名前でもう一度置く(出し直し)同じ 6/18 のファイルを同じ名前で当月フォルダに置く → 加工後に 払出データ_20260618-1.xlsx ができ、比較元は 20260618。段階2で、前回この仕組みが書いた値と違うセルが「更新」として完了メールに出る
  7. 前月確定フォルダを試す月が替わってから、前月末日の加工前ファイルを前月確定フォルダに置く → 比較元は前の前月末日の版、段階2で前月の月次ブックに入る。当月の月次ブックは変わらない
  8. 翌月の月次ブックを作る(ボタン)月次フォルダで 関東2606◆最新 のコピーを選び […]→[統合]→[フロー]→ 払出_翌月の月次ブック_関東 → 関東2607◆最新 ができ、2026年7月度・日付の見出し 1,2,3,4,6,7(水〜火)・稼働日数 27(黄色)・入力用1が空・予算が黄色になっていること。もう一度押すと『もうあります』で止まる
  9. 止まることも確かめる① 前月の日付のファイルを当月フォルダに置く → 『前月確定フォルダに置いてください』で止まる(投入フォルダから消す) ② 古い 20260618 のブックで段階2 → 『より新しい版の転記が済んでいます』で止まる

仕上げ

当社環境で通しで動かした結果(10/6・10/7)

※10/13 に変えた形(投入フォルダ2つ・フロー2本・加工後へは作成+削除)と翌月の月次ブックのボタンは、当社の検証用の代役では確認済みですが、Power Automate の実機ではまだ動かしていません。下の結果は 10/6・10/7 の形のものです。このガイドのとおりに当社の SharePoint・Power Automate でフローを作り、6/18 の全国データで動かしました。御社で動かすときの目安にしてください。

確かめたこと結果
段階1:投入から最後まで成功。全体で約7分(前日最新版の書き出し11秒・照合37秒・待ち時間6分・最新版へ上書き2秒・処理済みへ7秒)。照合はどちらも120秒の上限の内側
段階1:照合の数字関東 15,969行/前日から引き継ぎ 14,580行/未判定 1,389行/対応表に無い課 5(最新版は 6/17 の夕方の状態)。事前の検証と一致
段階1:処理済みへ移したあとトリガーはもう一度動きませんでした(15分後も実行は1回)
段階1:最新版へ上書き最新版ブックを誰も開いていない状態で成功(ロックのエラーは出ませんでした)
段階2:更新と転記成功(更新11秒・転記8秒)。区分を確定 15,951行/未判定のまま 18行/入力用1へ 38セル記入/入力済みと同じ 257/違う値 258/数式のため書かず 2。事前の検証と一致
段階2:SharePoint から押す[…]→[統合]→[フロー]に「払出_更新_関東」が出ることを確認。初回は接続の確認画面が出ます
ファイル識別子(最新版へ上書き)文字で入れると識別できないことがあります。フォルダーのアイコンから選びます
10/7:前月末日・同じ日の出し直し(段階1)6/18 の出し直しを 20260618-1・-2・-3 の名前で、続けて 20260701(7月分)を投入。比較元はそれぞれ 20260618・-1・-2、7月分は 20260618-3 を選び、月は 2606/2607。すべて成功(1件 約7分。同時実行1のため、続けて置いた分は前の実行を待ってから動きました)
10/7:段階1 の数字(20260618-1)関東 15,968行/前の版から引き継ぎ 15,950行/未判定 18行(前の版で区分が入った行は引き継がれる)。比較元の選択 13秒・書き出し 7秒・照合 32秒・移動 9秒
10/7:段階2 の月次ブックの選び方6月の版は 関東2606◆最新、7月分は 関東2607◆最新 に自動で転記(パスによるファイル メタデータの取得 0.1秒)。7月分:入力用1へ 41セル記入
10/7:この仕組みが書いたセルだけ更新20260618-2 で空のセルに 1セル記入 → 20260618-3(その明細の金額を2倍)で同じセルを 44.42 → 88.84 に更新。人の入力(192セル)は上書きせず一覧に出ることを確認
10/7:止まる場面20260618-1 を転記したあとに古い 20260618 で更新 → 「より新しい版(20260618-1)の転記が済んでいます」で転記が止まり、月次ブックは変わりませんでした

仕上げ

つまずいたら

こうなった見るところ
「比較元の選択」が『前月確定フォルダに置いてください』で止まる前月の日付のファイルを当月フォルダに置いた。止まったファイルを投入フォルダから消し、前月確定フォルダに置き直す
「比較元の選択」が『当月フォルダに置いてください』で止まる当月の日付のファイルを前月確定フォルダに置いた。消して当月フォルダに置き直す
「比較元の選択」が『日付がありません』で止まるファイル名に 8桁(20260909)か 6桁(260909)の日付が無い。名前を付け直して置き直す
「転記」が『より新しい版の転記が済んでいます』で止まる古い版のブックで押した。加工後フォルダで一番新しい版(日付が大きい、同じ日なら -番号 が大きい)を選んで押し直す
「転記」が『…の月のブックですが、データは…の月です』で止まる/「月次ブック」が 404その月の月次ブック(関東YYMM◆最新.xlsx)が /払出データ/月次 に無い、または名前が違う
「加工後へ」(ファイルの作成)が失敗ファイル名の式が body('比較元')?['saveName'] になっているか。同じ名前は「比較元の選択」で番号を付けるので、通常は重なりません
「投入から削除」が失敗(ロック)待ち時間(6分)の前にブックを誰かが開いた/待ち時間が短い。投入ファイルを手で消してよい(加工後には置けている)
「トリガー コンカレンシー スロットリング」と表示される同時実行を1にしているため、前の実行が終わるまで次が待っている表示です。異常ではありません
全行が未判定になった照合の prevJson の式が outputs('前日最新版の書き出し')?['body/result'] になっているか。初回は正常
JSON の解析でエラースキーマを貼り直す(不良率のスキーマと取り違えやすい)。コンテンツは手打ちせず fx から
フローが2回動いた加工後フォルダが投入フォルダの中にある。外(/払出データ/加工後/関東)へ
[統合]→[フロー]にフローが出ないフローが既定の環境にあるか。オンになっているか。押す人が実行のみのユーザーに入っているか
ボタンを押すと接続の一覧が出る初回だけ出ます。接続に緑の印が付いていれば[続行]→[フローの実行]
実行履歴で未判定や差分の一覧が途中で切れて見える実行の画面は配列を250件までしか表示しません。件数はメールの件名(length の式)で確かめます
入力用1に数字が入らない完了メールの「人が入力した値と違う」に出ていないか(人が書き換えたセルは上書きしません)。月次ブックの名前の4桁がデータの月と合っているか
翌月のボタンが『もうあります』で止まる翌月の月次ブックがもう /払出データ/月次 にある。作り直す場合は、今あるブックの名前を変えてから押す(上書きはしない作り)
翌月のボタンが『月次ブックではありません』で止まる加工後のブックなどを選んで押した。/払出データ/月次 の 関東YYMM◆最新.xlsx を選んで押し直す
翌月のボタンの「準備」が失敗(ファイルが見つからない)作った直後のブックをまだ開けなかった。#7 と #8 の間に「遅延」1分を足す。翌月のブックはできているので、消してから押し直す
スクリプトがタイムアウトPower Automate からの実行は120秒が上限(Microsoft)。全国分で時間がかかる場合は基幹側で地域を分けて出力

ほかの症状は 02【手順書】の「⑤エラー対応」にまとめています。

参考

Microsoft が決めている上限

6分Excel のコネクタが使ったファイルが、更新・削除のためにロックされることがある時間
120秒Power Automate から同期で動かすスクリプトの時間の上限
1,600回/日スクリプトの実行(1ユーザーあたり)。段階1・段階2・翌月のボタンとも、1回動くごとに2回使います
25MBExcel Online (Business) コネクタで扱えるブックの大きさ

出典:Microsoft「Office スクリプトのプラットフォームの制限」「Excel Online (Business) コネクタ/既知の問題と制限事項」。

参考

中部・関西に広げるとき

フローを複製する

関東のフローをコピーし、名前の「関東」を地域名に変えます。

変えるのは3か所

トリガーのフォルダー(/払出データ/投入/中部/当月・前月確定 など)、加工後フォルダ(一覧と作成先)、照合の optionsJson(中部 {"areaPrefix":"1"}/関西 {"areaPrefix":"3"})。月次ブックのパスの「関東」も地域名に変えます。

所有者

所有者は同じ方で構いません。予備の共同所有者を1名入れておくと、異動や休みのときに止まりません。