食品ユニフォーム 不良率 週次集計 v3
導入当日の手順書
設定ブックとスクリプトを置き、既存の Power Automate のフローを v3 に直して、実データで通しで動かすまでの手順です。上から順に進めます。式とスキーマは[コピー]で取れます。各手順の右上の「済」に印を付けると、この端末に残ります。
手元の資料:01 貼り付け用スクリプト(Word)/02 手順書(Excel)/03 完成イメージ/04 設定管理ブック/05 対象顧客リスト
当日
進め方(60分)
今日のゴールは「v3 が御社の環境で通しで動き、出力ブックとアラートメールが届くこと」です。
| 時間 | やること | 中身 |
|---|---|---|
| 0〜5分 | 冒頭 | 録画を開始。今日のゴールと v3 の変更点を確認 |
| 5〜15分 | 準備 | 設定ブック・対象顧客リストを置く。スクリプト4本を登録(Copilot でのスクリプトの作り方も見せる) |
| 15〜35分 | フロー改造 | 既存のフローを #1〜#14 のとおりに直す(新しく足すのは #3・#13・#13-1) |
| 35〜50分 | 通し実行 | 8/10〜8/16 のブックを投入 → 出力・アラート件数・メールを確かめる → もう一度投入して履歴が増えないことを確かめる |
| 50〜60分 | 決めること | 拠点ごとの宛先、全社宛ての宛先、しきい値、トリガー、対象顧客リストの更新 |
はじめに録画を開始します(当日参加できない方の視聴用)。
1. 冒頭(5分)
v3 で変わること
9/28 の完成形レビューでいただいたご意見を反映した点です。拠点別サマリーは変更なし、現物確認リストは残しています。
| 項目 | v2(9/18) | v3 |
|---|---|---|
| 集計する得意先 | データに出てくる全得意先 | 対象顧客リストの508社だけ(リスト外は3シートにも通知にも出さない) |
| 拠点の決め方 | 仕上データの生産部課名から判定 | 対象顧客リストの「生産拠点」(空欄の得意先だけ生産部課名から) |
| 値が無いセル | 空欄 | 理由を文字で出す(消耗廃棄なし/洗濯回数0で登録/仕上なし/前週なし/-) |
| 前週比 | 不良率(pt)・不良数(枚) | + 消耗・破損・汚損・その他の前週比(枚)を得意先別明細・現物確認リストに追加 |
| 通知 | 全社宛て1通 | 全社宛て+拠点ごと(「通知先」シートに宛先を入れた拠点だけ) |
2. 準備(10分)
2-1. ファイルを置く
- 1
SharePoint の不良率フォルダを確かめる
フォルダ入力/不良率/投入 /不良率/出力 /不良率/設定9/8 に作ったフォルダをそのまま使います。無ければ作ります
- 2
設定管理ブックを置く
置くファイル入力04【設定管理】不良率_しきい値と通知先_v3.xlsx置き場所入力/不良率/設定全社宛ての通知先(設定シート)には、いただいた配信先15件が入っています。拠点ごとの宛先(通知先シート)は空欄です(5. で決めて入れます)。
- 3
対象顧客リストを置く
置くファイル入力05【対象顧客リスト】食品UF不良率.xlsx置き場所入力/不良率/設定今お使いの週次ブックをこの名前で置いても読めます(「対象顧客」シートが無ければ、いちばん右のシートを読みます)。
2-2. スクリプト4本を登録する
01 の Word にある4本を、Excel の[自動化]に貼り付けて登録します。
| スクリプト名 | 登録するときに開くブック |
|---|---|
| 不良率_設定読み出し | /不良率/設定/【設定管理】不良率_しきい値と通知先_v3.xlsx |
| 不良率_対象顧客読み出し | /不良率/設定/【対象顧客リスト】食品UF不良率.xlsx |
| 不良率_週次集計_v3 | /不良率/設定/【設定管理】不良率_しきい値と通知先_v3.xlsx(どのブックで登録しても使えます) |
| 不良率_履歴追記 | /不良率/設定/【設定管理】不良率_しきい値と通知先_v3.xlsx |
- 1
Excel on the web でブックを開く
開くブック入力/不良率/設定/【設定管理】不良率_しきい値と通知先_v3.xlsxスクリプトは、フローを作った方(フローの所有者)のアカウントで登録します。「スクリプトの実行」アクションの一覧には、接続しているアカウントのスクリプトしか出ないためです。
- 2
[自動化]タブ →[新しいスクリプト]
操作選ぶリボンの[自動化]→[新しいスクリプト]右にコードエディターが開きます。
- 3
エディターの中身をすべて消す
操作入力エディターをクリック → Ctrl+A(Mac は ⌘A)→ Delete最初から入っている function main(...) も消します。
- 4
01 の Word から1本目のコードを貼る
貼るもの貼り付け01【貼り付け用】Office Script_不良率_v3_20261009.docx の「1. 不良率_設定読み出し」の見出しの下を、最初の行から最後の行までWord の見出しは貼りません。コードの行だけを選んでコピーします。
- 5
スクリプト名を変えて保存
名前入力不良率_設定読み出し操作選ぶエディター上部のスクリプト名をクリックして書き換え →[スクリプトを保存]名前は1文字でも違うと、フローの一覧で見つけにくくなります。
- 6
残りの3本も同じように登録する
2本目入力不良率_対象顧客読み出し3本目入力不良率_週次集計_v34本目入力不良率_履歴追記[新しいスクリプト]→ 中身を消す → 貼る → 名前を変えて保存、を3回。v2 のスクリプト(不良率_週次集計)は消さずに残して構いません。
- 7
登録できたか確かめる
操作選ぶ[自動化]→[すべてのスクリプト]4本の名前が並んでいれば完了です。
2-3. レクチャー
Copilot でスクリプトを作る・直す
今後、別の定期資料を自動化するときの進め方です。スクリプトは1行ずつ書かず、作りたい処理を日本語で伝えて Copilot に書かせ、エラーもそのまま返して直させます。
- 1
作りたい処理を日本語で箇条書きにする
例貼り付け下のコピーで取れる指示文どのシートの、どの列を読み、何を返すか。Power Automate から呼ぶなら「string を返す」と書きます。
- 2
Copilot に指示文を貼り、出てきたコードを[新しいスクリプト]に貼る
操作選ぶMicrosoft 365 Copilot(または Copilot Chat)→ 指示文を貼る → コードをコピー → 新しいスクリプトに貼って保存 - 3
[実行]して、エラーが出たらそのまま Copilot に返す
例貼り付け下のコピーで取れる指示文エラーの文と、いまのスクリプト全体を一緒に渡すと、直したコードが返ってきます。1行ずつ自分で書く必要はありません。
- 4
動いたら、Power Automate の「スクリプトの実行」で呼ぶ
操作選ぶフローにアクションを足す → スクリプトを選ぶ → 戻り値(result)を「JSON の解析」で読む今日の4本も、この流れで作ったものと同じ形です(返す JSON を、フローの「JSON の解析」で読む)。
3. フロー改造(20分)
既存のフロー「週次_食品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)★スクリプトと引数を替える名前を 集計 に変える(式の中でこの名前を使います)
ファイル⚡ 動的なコンテンツ「出力用コピー」の ItemIdスクリプト選ぶ不良率_週次集計_v3v2 の 不良率_週次集計 から替えます。選び直すと引数の欄が空に戻るので、下の2つを入れ直します
settingsJsonfx 式outputs('設定読み出し')?['body/result']targetJsonfx 式outputs('対象顧客読み出し')?['body/result']★v3 で増えた引数。文字列のまま渡します(JSON の解析はしない)
- 6
JSON の解析
データ操作★スキーマを貼り替え名前を 集計結果 に変える(式の中でこの名前を使います)
コンテンツfx 式json(outputs('集計')?['body/result'])スキーマ貼り付けスキーマ(全文)今入っている v2 のスキーマを全部消してから貼ります(拠点ごとのメール siteMails などが増えています)
- 7
ファイル コンテンツの取得
SharePoint変更なし名前を 出力ブックの内容 に変える(式の中でこの名前を使います)
ファイル識別子⚡ 動的なコンテンツ「出力用コピー」の ItemId - 8
ファイルの作成
SharePoint変更なし名前を 週末日の名前で保存 に変える(式の中でこの名前を使います)
フォルダーのパス選ぶ/不良率/出力ファイル名入力不良率_〔periodEnd〕.xlsx例:不良率_20260816.xlsx
ファイル コンテンツ⚡ 動的なコンテンツ「出力ブックの内容」のファイル コンテンツ - 9
ファイルの削除
SharePoint変更なし名前を 一時コピーの削除 に変える(式の中でこの名前を使います)
ファイル識別子⚡ 動的なコンテンツ「出力用コピー」の ItemId - 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. 通し実行(15分)
8/10〜8/16 のデータで動かして確かめる
下の数字は、当社の検証環境で同じ4本のスクリプトを実データに対して実行し、別の計算でも突き合わせた結果です(508社すべて一致)。御社の環境での実行は今日が初めてです。
- 1
8/10〜8/16 のブックを投入フォルダに置く
置くファイル入力「仕上データ」「不良交換」の2シートを持つ 8/10〜8/16 のブック置き場所入力/不良率/投入置いてから1〜数分でフローが動きます。フローの詳細画面の[28日間の実行履歴]で確かめます。
- 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. 決めること(10分)
その場で決めて、設定ブックに入れる
どれも設定管理ブック・対象顧客リストを書き換えて保存するだけで、次の集計から反映されます。フローは触りません。
| 項目 | 今の状態 | 決まったらやること |
|---|---|---|
| 拠点ごとの宛先 | いただいた配信先リストには、どの拠点の方かが書かれていないため、通知先シートは空欄です。 | 通知先シートの「宛先」列に、拠点ごとにアドレスを入れて保存(複数は ; 区切り)。拠点名の列は変えない |
| 全社宛ての宛先 | 今は配信先15件すべてを全社宛てに入れています。全員に全拠点のアラートが届きます。 | 拠点の担当の方は拠点宛てだけにする場合、設定シートの「通知先」から外す |
| しきい値 | 今の基準(5枚以上かつ2.0%以上)では、8/10〜8/16 で23件・最も多い拠点で9件。目安の「1拠点あたり多くても5件」を超えます。 | 設定シートの「最低枚数」「最低不良率」を書き換えて保存(下の表)。フローは触らない |
| トリガー | 今は「仕上・不良交換のブックを投入したら動く」。対象顧客リストは毎回読むので、リストの変更は次の投入から反映されます。 | リストを更新した時点でも集計し直したい場合は、同じ手順のフローをもう1本(トリガー=リストの更新)作る |
| 対象顧客リストの更新 | リストの最新版がどれか、更新の頻度(今は3か月に1回)。 | 最新版を /不良率/設定 に同じ名前で置き直す |
| 不良交換データの抽出期間 | 8/10〜8/16 のファイルに、8/1〜8/18 の不良交換が入っていました。スクリプトは仕上データの期間に合わせて切るので集計は合いますが、抽出の条件を週に合わせていただくのが本来の形です。 | 基幹の抽出条件を確認 |
しきい値ごとのアラート件数(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件 | ○ |
しきい値を変えたら、同じブックを名前を変えてもう一度置くと、新しい基準での件数とメールを確かめられます。
参考
つまずいたら
| 症状 | 原因 | 対処 |
|---|---|---|
| スクリプトの一覧に「不良率_週次集計_v3」などが出てこない | 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【手順書】の「④エラー対応」にまとめています。
参考
会議のあと
御社
拠点ごとの宛先・しきい値が決まっていなければ、決まり次第、設定管理ブックに入れて保存。翌週の投入から、各拠点でメールを受け取れるかを確かめる。
当社
今日決まった内容と、実行で分かったこと(上の「あわせて確かめること」)をまとめてお送りします。失敗した項目があれば修正します。
現場で使い始めるまで
宛先の確定と、各拠点での受け取りの確認で2〜3週間の見込みです。