食品ユニフォーム 不良率 週次集計 v3
設定手順書
設定ブックとスクリプトを置き、既存の Power Automate のフローを v3 に直して、実データで動かして確かめるまでの手順です。上から順に設定してください。式とスキーマは[コピー]で取れます。各手順の右上の「済」に印を付けると、この端末に残ります。
設定がうまくいかなかった箇所や、決めていただく項目(拠点ごとの宛先・しきい値など)は、次回の定例会で一緒に進めます。
お手元の資料:01 貼り付け用スクリプト(Word)/02 手順書(Excel)/03 完成イメージ/04 設定管理ブック/05 対象顧客リスト
1
ファイルを置く
設定管理ブックと対象顧客リストは、どちらも /食品ユニフォーム不良率自動化/設定 に置きます。
- 1
SharePoint の不良率フォルダを確かめる
場所業務部サイト(SharePoint)のドキュメント親フォルダ食品ユニフォーム不良率自動化その下に作るフォルダ投入 出力 設定3つとも同じ階層(食品ユニフォーム不良率自動化 の直下)に作ります。出力も必要です(集計したブックが週ごとに貯まります)
8/28・9/8 に作った /不良率 フォルダの名前を変えて使う場合は、フローのトリガー(#1)・ファイルのコピー先(#4)・ファイルの作成先(#8)と、スクリプトの実行のブック(#2・#3・#10)を、フォルダーのアイコンから選び直してください。フローはフォルダを場所で覚えているため、名前を変えると見つからなくなります。
- 2
設定管理ブックを置く
置くファイル【設定管理】不良率_しきい値と通知先_v3.xlsxお渡ししたファイルの先頭の「04_」は外して保存します
置き場所設定フォルダの中(ドキュメント > 食品ユニフォーム不良率自動化 > 設定)v2 の【設定管理】不良率_しきい値と通知先.xlsx は名前が違うので、同じフォルダに並べたままで構いません。全社宛ての通知先には、いただいた配信先15件が入っています。拠点ごとの宛先(通知先シート)は空欄です。
- 3
対象顧客リストを置く
置くファイル【対象顧客リスト】食品UF不良率.xlsx先頭の「05_」は外して保存します
置き場所設定フォルダの中(ドキュメント > 食品ユニフォーム不良率自動化 > 設定)投入フォルダ(/食品ユニフォーム不良率自動化/投入)には置かないでください。置いた時点でフローが動きます。
2
スクリプト4本を登録する
01 の Word にある4本を、Excel の[自動化]に登録します。v2 で登録済みの2本は中身を置き換え、残りの2本は新しく作ります。
| スクリプト名 | やること | 登録するブック |
|---|---|---|
| 不良率_設定読み出し | v2 で登録済み → 開いて中身を置き換える | 【設定管理】不良率_しきい値と通知先_v3.xlsx |
| 不良率_対象顧客読み出し | 新しく作る | 【対象顧客リスト】食品UF不良率.xlsx |
| 不良率_週次集計 | 新しく作る(同じ名前が既にあれば置き換える) | どのブックでも可。v2 の 不良率_週次集計_v2 は使わなくなります |
| 不良率_履歴追記 | v2 で登録済み → 開いて中身を置き換える | 【設定管理】不良率_しきい値と通知先_v3.xlsx |
- 1
Excel on the web で設定管理ブックを開く
開くブック設定フォルダの中の【設定管理】不良率_しきい値と通知先_v3.xlsxスクリプトは、フローを作った方(フローの所有者)のアカウントで登録します。「スクリプトの実行」アクションの一覧には、接続しているアカウントのスクリプトしか出ないためです。
- 2
同じ名前のスクリプトがあるか確かめる
操作選ぶリボンの[自動化]→[すべてのスクリプト]v2 で「不良率_設定読み出し」「不良率_履歴追記」を登録していれば、一覧に出ます。この2本は中身を置き換えます。
- 3
(あるもの)開いて中身を置き換える
操作選ぶ一覧のスクリプト名をクリック →[編集]→ エディターをクリック → Ctrl+A(Mac は ⌘A)→ Delete貼るもの01 の Word の同じ名前の見出しの下を、最初の行から最後の行まで保存選ぶ[スクリプトを保存]名前はそのままで、中身だけが v3 になります。Word の見出しは貼りません。コードの行だけを選んでコピーします。
- 4
(無いもの)新しく作る
操作選ぶ[新しいスクリプト]→ エディターの中身をすべて消す → 01 の Word のコードを貼る名前入力見出しの名前(例:不良率_対象顧客読み出し)エディター上部のスクリプト名をクリックして書き換え →[スクリプトを保存]
「不良率_対象顧客読み出し」「不良率_週次集計」は新しく作ります。最初から入っている function main(...) も消してから貼ります。
- 5
名前を確かめる
1本目入力不良率_設定読み出し2本目入力不良率_対象顧客読み出し3本目入力不良率_週次集計4本目入力不良率_履歴追記[すべてのスクリプト]にこの4本が並んでいれば完了です。v2 の「不良率_週次集計_v2」は残っていて構いません(使わなくなります)。
- 6
フローを直し終えるまで、投入フォルダにファイルを置かない
理由スクリプトの中身が v3 になったので、v2 のままのフローとは組み合わせが合いません
3
既存のフロー「週次_食品UF不良率_集計と通知」を v3 に直す
8/28・9/8 に作ったフローを開き、[編集]で上から順に直します。新しく足すのは #3・#13・#13-1 の3つです。アクションの名前は表記どおりに変えてください(式がこの名前で前のアクションを探します)。
- 1
ファイルが作成されたとき(プロパティのみ)
SharePoint変更なしサイトのアドレス選ぶ業務部サイトライブラリ名選ぶドキュメントフォルダー選ぶ/食品ユニフォーム不良率自動化/投入 - 2
スクリプトの実行
Excel Online (Business)ブックを差し替え名前を 設定読み出し に変える(式の中でこの名前を使います)
場所選ぶ業務部サイト(SharePoint)ドキュメント ライブラリ選ぶドキュメントファイル選ぶ/食品ユニフォーム不良率自動化/設定/【設定管理】不良率_しきい値と通知先_v3.xlsx欄の右のフォルダーのアイコンから選びます
スクリプト選ぶ不良率_設定読み出し一覧から選びます。引数の欄は、スクリプトを選ぶと下に出てきます
v2 の設定管理ブックから v3 のブックに替えます(通知先シートが増えたため)。引数はありません。
- 3
スクリプトの実行
Excel Online (Business)★新しく足す名前を 対象顧客読み出し に変える(式の中でこの名前を使います)
場所選ぶ業務部サイト(SharePoint)ドキュメント ライブラリ選ぶドキュメントファイル選ぶ/食品ユニフォーム不良率自動化/設定/【対象顧客リスト】食品UF不良率.xlsx欄の右のフォルダーのアイコンから選びます
スクリプト選ぶ不良率_対象顧客読み出し一覧から選びます。引数の欄は、スクリプトを選ぶと下に出てきます
#2 の下の[+]から足します。対象顧客リストは読むだけで、書き換えません。
- 4
ファイルのコピー
SharePoint変更なし名前を 出力用コピー に変える(式の中でこの名前を使います)
コピー元⚡ 動的なコンテンツトリガーの「ファイルパス」コピー先フォルダー選ぶ/食品ユニフォーム不良率自動化/出力既存の場合選ぶ置き換える - 5
スクリプトの実行
Excel Online (Business)★スクリプトと引数を替える名前を 集計 に変える(式の中でこの名前を使います)
ファイル⚡ 動的なコンテンツ「出力用コピー」の ID参照ボタン(フォルダーのアイコン)では選びません。欄をクリック →[動的なコンテンツ]→「出力用コピー」の「ID」。同じ並びの「ItemId」ではありません
スクリプト選ぶ不良率_週次集計v2 の 不良率_週次集計_v2 から替えます。選び直すと引数の欄が空に戻るので、下の2つを入れ直します
settingsJsonfx 式outputs('設定読み出し')?['body/result']targetJsonfx 式outputs('対象顧客読み出し')?['body/result']★v3 で増えた引数。文字列のまま渡します(JSON の解析はしない)
- 6
JSON の解析
データ操作★スキーマを貼り替え名前を 集計結果 に変える(式の中でこの名前を使います)
コンテンツfx 式json(outputs('集計')?['body/result'])スキーマ貼り付けスキーマ(全文)今入っている v2 のスキーマを全部消してから貼ります(拠点ごとのメール siteMails などが増えています)
- 7
ファイル コンテンツの取得
SharePoint変更なし名前を 出力ブックの内容 に変える(式の中でこの名前を使います)
ファイル識別子⚡ 動的なコンテンツ「出力用コピー」の ID「ItemId」ではなく「ID」
- 8
ファイルの作成
SharePoint変更なし名前を 週末日の名前で保存 に変える(式の中でこの名前を使います)
フォルダーのパス選ぶ/食品ユニフォーム不良率自動化/出力ファイル名入力不良率_〔periodEnd〕.xlsx例:不良率_20260816.xlsx
ファイル コンテンツ⚡ 動的なコンテンツ「出力ブックの内容」のファイル コンテンツ - 9
ファイルの削除
SharePoint変更なし名前を 一時コピーの削除 に変える(式の中でこの名前を使います)
ファイル識別子⚡ 動的なコンテンツ「出力用コピー」の ID「ItemId」ではなく「ID」
- 10
スクリプトの実行
Excel Online (Business)ブックを差し替え名前を 履歴追記 に変える(式の中でこの名前を使います)
場所選ぶ業務部サイト(SharePoint)ドキュメント ライブラリ選ぶドキュメントファイル選ぶ/食品ユニフォーム不良率自動化/設定/【設定管理】不良率_しきい値と通知先_v3.xlsx欄の右のフォルダーのアイコンから選びます
スクリプト選ぶ不良率_履歴追記一覧から選びます。引数の欄は、スクリプトを選ぶと下に出てきます
resultJsonfx 式outputs('集計')?['body/result']解析したあとの body('集計結果') ではなく、文字列そのものを渡します
- 11
条件
コントロール変更なし名前を アラートあり に変える(式の中でこの名前を使います)
左の値fx 式int(string(body('集計結果')?['alertCount']))比べ方選ぶ次の値より大きい右の値入力0 - 12
メールの送信 (V2)
Office 365 OutlookTrue(はい)の中本文の式を替える名前を 全社宛て に変える(式の中でこの名前を使います)
宛先fx 式body('集計結果')?['notifyTo']件名fx 式body('集計結果')?['mailSubject']本文fx 式replace(body('集計結果')?['mailBody'], decodeUriComponent('%0A'), '<br>')本文の改行がメールで詰まらないよう、<br> に置き換える式にします
- 13
それぞれに適用する
コントロールTrue(はい)の中、#12 の下★新しく足す名前を 拠点ごとに送る に変える(式の中でこの名前を使います)
前のステップから出力を選択fx 式body('集計結果')?['siteMails']⚡ の一覧から選ばず、fx で入れます(⚡ で選ぶとループがもう1つ自動で作られることがあります)
- 13-1
メールの送信 (V2)
Office 365 Outlook#13 の中★新しく足す名前を 拠点宛て に変える(式の中でこの名前を使います)
宛先fx 式items('拠点ごとに送る')?['宛先']件名fx 式items('拠点ごとに送る')?['件名']本文fx 式replace(items('拠点ごとに送る')?['本文'], decodeUriComponent('%0A'), '<br>')CCfx 式items('拠点ごとに送る')?['CC'][詳細パラメーター]→[すべて表示]で出ます
siteMails に入るのは「通知先シートに宛先があり、今週アラートがある拠点」だけです。宛先が空欄の拠点には送りません。
- 14
(何も置かない)
False(いいえ)変更なしアラートが0件の週もメールが欲しい場合は、ここに全社宛てのメールを置きます。
- 保存
右上の[保存]
操作選ぶ[保存]→「フローを開始する準備ができました」と出れば完了保存で止まるときは、エラーの出たアクションの欄が空になっていないか(特に #5 の引数)を見ます。
4
8/10〜8/16 のデータで動かして確かめる
下の数字は、当社の検証環境で同じ4本のスクリプトを実データに対して実行し、別の計算でも突き合わせた結果です(508社すべて一致)。同じデータを置けば、同じ結果になります。
- 1
8/10〜8/16 のブックを投入フォルダに置く
置くファイル「仕上データ」「不良交換」の2シートを持つ 8/10〜8/16 のブックファイルの形式Excel ブック(.xlsx)CSV(.csv)・古い形式(.xls)のままでは集計できません。基幹から CSV で出した場合は、Excel で開いて[名前を付けて保存]→「Excel ブック (*.xlsx)」で保存し、2つのシートを1冊にまとめます
置き場所/食品ユニフォーム不良率自動化/投入置いてから1〜数分でフローが動きます。フローの詳細画面の[28日間の実行履歴]で確かめます。CSV を Excel で開くと得意先コードの先頭の「0」が消えますが、そのままで構いません(スクリプトが9桁に戻して照合します)。
- 2
実行がすべて緑になるか
見るところ選ぶ実行を開き、#1〜#13-1 に緑の印が付いているか赤い印のアクションがあれば、そこを開いてエラー文を読みます(下の「つまずいたら」)。
- 3
出力ブックができているか
見るところ/食品ユニフォーム不良率自動化/出力/不良率_20260816.xlsxシート拠点別サマリー/得意先別明細/現物確認リスト の3つ03【完成イメージ】不良率_20260816_v3.xlsx と見比べます。
- 4
数字が完成イメージと同じか
対象顧客508社(8拠点)。うち今週データが無い得意先 59社(0枚の行で載る)全社仕上 269,737枚/不良 1,881枚/不良率 0.70%アラート23件(現物確認リストの行数)。拠点ごとの内訳は 03 の拠点別サマリーと同じになること - 5
空欄のセルが無いか
見るところ選ぶ得意先別明細で、空白のセルが無いこと値が無いところは「消耗廃棄なし」「仕上なし」「前週なし」「-」などの文字が入ります。初回は前週の履歴が無いので、前週の8列はすべて「前週なし」です。
- 6
全社宛てのメールが届くか
届く先設定シートの「通知先」の15件件名の形【不良率】2026/08/16週 …本文が改行されて読めるか(行が詰まっていないか)も見ます。
- 7
拠点宛てのメールが届くか
届く先通知先シートに宛先を入れた拠点だけ通知先シートが空欄のままなら、拠点宛ては送られません(正常)。宛先を入れたあと、もう一度置いて確かめます(5. 設定の変え方)。
- 8
履歴が追記されたか
見るところ設定管理ブックの「履歴」シート増える行516行(拠点8+得意先508)。週末日は 20260816 - 9
同じブックをもう一度置く
確かめること履歴が 516行のまま(同じ週の行を消してから入れ直すので二重にならない)。出力ブックは置き換わる同じファイル名で置き直すと、トリガーが動かないことがあります。名前を変えて(例:末尾に _2)置きます。
あわせて確かめていただきたいこと(御社の環境で初めて分かること)
| 確かめること | 見方・うまくいかないとき |
|---|---|
| Excel on the web で、先頭行の固定・オートフィルター・折り返し・列幅の自動調整が効くか | 得意先別明細を開いて、見出しが固定され、フィルターのボタンが出ているか |
| 設定管理ブックを開いたままフローが動いたとき | 誰かが開いたままだと「履歴追記」が 423(ロック)で失敗することがある。失敗したらブックを閉じて[再送信] |
| ブックの大きさ・実行時間 | Excel のスクリプトは1回120秒・1回の読み書き5MBまで(Microsoft の上限)。うまくいかないときは次回の定例会でお知らせください(当社でスクリプトの読み込み単位を小さくします) |
| 得意先コードの先頭の0 | 基幹から Excel で出したときに得意先コードが数値になり、先頭の0が落ちていないか。落ちていると対象顧客リストと突き合わなくなります |
5
設定の変え方(宛先・しきい値・対象顧客)
どれも設定管理ブック・対象顧客リストを書き換えて保存するだけで、次の集計から反映されます。フローは触りません。
| 変えたいもの | 書き換える場所 | やり方 |
|---|---|---|
| 拠点ごとの宛先 | 設定管理ブック「通知先」シートの「宛先」列 | 拠点の行に、その拠点のアラートを受け取る方のアドレスを入れて保存(複数は ; 区切り。CC 列も同じ)。拠点名の列は変えない。空欄の拠点には拠点宛てのメールを送りません |
| 全社宛ての宛先 | 設定管理ブック「設定」シートの「通知先」 | 今は配信先15件すべてが入っていて、全員に全拠点のアラートが届きます。拠点宛てだけにする方は、ここから外して保存 |
| しきい値 | 設定管理ブック「設定」シートの「最低枚数」「最低不良率」 | 数字を書き換えて保存(2.0 と書けば 2.0%)。下の表が 8/10〜8/16 での件数です |
| 対象顧客リストの更新 | /食品ユニフォーム不良率自動化/設定/【対象顧客リスト】食品UF不良率.xlsx | 得意先を足す・外すときは行を足す・消して保存。最新版に替えるときは同じ名前で置き直す。次の投入から反映されます |
しきい値ごとのアラート件数(8/10〜8/16・対象顧客508社)
「1拠点あたり多くても5件」が目安です。○は、すべての拠点で5件以内に収まる組み合わせです。
| 最低枚数 | 最低不良率 | 全体の件数 | 最も多い拠点 | 全拠点5件以内 | 備考 |
|---|---|---|---|---|---|
| 5枚以上 | 2.0%以上 | 23件 | 9件 | × | 今の設定 |
| 5枚以上 | 2.5%以上 | 19件 | 7件 | × | |
| 5枚以上 | 3.0%以上 | 11件 | 4件 | ○ | |
| 5枚以上 | 4.0%以上 | 5件 | 2件 | ○ | |
| 10枚以上 | 2.0%以上 | 13件 | 4件 | ○ | |
| 10枚以上 | 2.5%以上 | 10件 | 3件 | ○ | |
| 10枚以上 | 3.0%以上 | 6件 | 2件 | ○ | |
| 15枚以上 | 2.0%以上 | 7件 | 4件 | ○ |
しきい値を変えたら、同じブックを名前を変えてもう一度置くと、新しい基準での件数とメールを確かめられます。
参考
つまずいたら
| 症状 | 原因 | 対処 |
|---|---|---|
| #5(集計)が赤くなる | 投入したファイルが CSV(.csv)・.xls のまま、または保存形式に「Strict Open XML スプレッドシート」を選んだ | Excel で開き[名前を付けて保存]→「Excel ブック (*.xlsx)」で保存し、名前を変えて置き直す |
| スクリプトの一覧に「不良率_週次集計」などが出てこない | Excel の[自動化]に登録していない/別のアカウントで登録した/Power Automate の画面が古い | フローの所有者のアカウントで登録し、Power Automate のページを再読み込み |
| 「上から20行に、『得意先コード』と『顧客名』の見出しが見つかりません」 | 対象顧客リストの見出しが違う/いちばん右のシートが別の表 | 「対象顧客」シートを作り、1行目を 生産拠点/得意先コード/顧客名 にする |
| 「targetJson の解析に失敗しました」 | #5 の targetJson に別のものを渡している | outputs('対象顧客読み出し')?['body/result'] を渡す |
| JSON の解析(#6)が失敗する | v2 のスキーマのまま/一部だけ貼った | スキーマを全部消して、このページのスキーマを全文で貼り直す |
| 「履歴追記」が「resultJson が空です」で失敗 | 解析後の body('集計結果') を渡している | outputs('集計')?['body/result'] を渡す |
| 全社宛てのメールが宛先なしで失敗 | 設定シートの「通知先」が空欄 | 通知先にアドレスを入れて保存 |
| 拠点宛てのメールが届かない拠点がある | 通知先シートの宛先が空欄/拠点名がリストの生産拠点と違う/その拠点に今週のアラートが無い | 拠点名はリストの「生産拠点」と同じ文字にする |
| メール本文の改行が詰まる | 本文の式が replace(…) になっていない | #12・#13-1 の本文を、このページの式に貼り直す |
| 「シート『仕上データ』が見つかりません」 | 投入したブックのシート名が違う/出力ブックを投入フォルダに戻した | シート名は「仕上データ」「不良交換」。出力ブックは投入フォルダに置かない |
| 得意先別明細の行数が508より少ない | 生産拠点が空欄で、仕上データからも拠点が決まらなかった得意先がある | 対象顧客リストの「生産拠点」を埋める |
ほかの症状は 02【手順書】の「④エラー対応」にまとめています。解決しないときは、エラーの画面を残しておき、次回の定例会でお見せください。
参考
次回の定例会
それまでにお願いしたいこと
この手順書の 1〜4 の設定と、8/10〜8/16 のデータでの動作確認。うまくいかなかった手順は、番号とエラーの画面を控えておいてください。
次回の定例会で進めること
つまずいた箇所の解消。拠点ごとの宛先・全社宛ての宛先・しきい値・トリガー(リスト更新でも動かすか)・対象顧客リストの更新方法を決めて、設定管理ブックに入れます。不良交換データの抽出期間(週の範囲に合わせる)も確認します。
現場で使い始めるまで
宛先の確定と、各拠点での受け取りの確認で2〜3週間の見込みです。