0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

作業者の保守工数管理案

0
Last updated at Posted at 2026-10-25

概要

作業者から管理者へ作業者からの早めのエスカレーションを基本として、
毎週の自動アラートで漏れを防ぐ二重の仕組みにする。

作業者のルール

  • 工数不足の兆候がある時点で、管理者にエスカレーションする
  • 期限:毎週月曜 9:00 のアラートより前(目安は前週金曜まで)
  • 「足りない気がする」段階で連絡してOK。迷ったら連絡する。

週次アラート(漏れ防止)

  • 毎週月曜 9:00 に、予定ペースを下回っていれば管理者と作業者へメール通知(CC:上位マネジメント)
  • 作業者からのエスカレーションの有無に関係なく、必ず判定する

管理者の対応

事前エスカレーションで工数不足を認識した場合

  • 作業の調整や上位への報告を判断する
  • 月曜のアラートは確認済として対応なし

週次アラートで工数不足を認識した場合

  1. 当日中に作業者へヒアリングし、今後の見込みを確認する
  2. 状況に応じて、上位へエスカレーションするか判断する
  3. アラートメールに全員返信し、ヒアリング結果と対応(上位へのエスカレーション有無)をメモとして残す

週次アラート設計(Power Automate → メール)

毎週月曜 9:00 に、当月の実績ファイルから合計実績工数を読み取り、予定ペースを下回っていれば メールで通知する。

項目 設定
月間予定工数 xxx h
実行タイミング 毎週月曜 9:00
実績の取得元 OneDrive の当月ファイルの合計実績セル(ファイルは月ごとに別)
通知先 メール(宛先:管理者、作業者CC:上位マネジメント)
アラート条件 進捗率が 100% 未満

計算方法

  • 期待消化工数 = xxx h × 前週末までの経過平日数 ÷ 当月の平日数
  • 進捗率 = 実績合計 ÷ 期待消化工数
  • 進捗率が 100% 未満 → Teams にアラート(実績・期待値・不足時間を記載)

フローの構成

  1. トリガー:繰り返し(毎週月曜 9:00)
  2. 当月のフォルダ(「10月」「11月」のような月名フォルダ)を実行日の月から特定し、フォルダ内の全員分のファイルから、ファイル名に対象作業者の名前を含むものだけを絞り込んで取得(フィルター条件:ファイル名に作業者名を含む)
  3. Excel Online(Business)でファイルを開き、合計実績セルを取得(セル位置は毎月同じ。客先提出ファイルを編集せずに読むため、Office スクリプトで固定セルの値を返し、フローの「スクリプトの実行」で呼び出す)
  4. 当月の平日数と経過平日数を計算(祝日は別リストで除外)
  5. 条件分岐:進捗率 < 100% なら Teams にメッセージ投稿

週次アラート詳細設計

1. Office スクリプトを作る

実績ファイルを1つ開き、「自動化」タブ →「新しいスクリプト」で以下を貼り付け、「GetActual」という名前で保存する。

function main(workbook: ExcelScript.Workbook): number {
  // 合計実績セル(仮で A1。実際の番地に差し替える)
  const sheet = workbook.getActiveWorksheet();
  const value = sheet.getRange("A1").getValue();
  return Number(value);
}

シートが複数ある場合は、getActiveWorksheet() を getWorksheet("シート名") に変える。

2. フローを作る(Power Automate)

  1. 「スケジュール済みクラウドフロー」を新規作成。毎週・月曜・9:00、タイムゾーンは東京。
  2. 変数を作成:月間予定工数 = xxx、作業者名 = 対象者の名前。
  3. 「作成」アクションで当月フォルダ名を作る:式 concat(int(formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),'MM')),'月') →「10月」など。
  4. OneDrive for Business「フォルダー内のファイルの一覧」で、親フォルダ/当月フォルダ を指定。
  5. 「アレイのフィルター処理」で、名前に作業者名を含むファイルだけ残す。
  6. Excel Online (Business)「スクリプトの実行」で、5 の先頭ファイルに GetActual を実行 → 実績合計を取得。
  7. 平日数を計算:当月の平日数と、前週末(日曜)までの経過平日数を求める。最初は「Do until」で1日ずつ数える方法が簡単。日本の祝日はすべて休みとして除外する(その年の祝日一覧を配列変数に入れておく)。
  8. 期待消化工数 = xxx × 経過平日数 ÷ 当月平日数、進捗率 = 実績合計 ÷ 期待消化工数。
  9. 「条件」:進捗率 < 1 なら Office 365 Outlook「メールの送信 (V2)」でアラート送信(宛先:管理者・作業者、CC:上位マネジメント)。

補足:平日数の計算(日本の祝日を除外)

  1. 「作成」アクション(名前:祝日リスト)に、その年の祝日を配列で入れる。例:["2026-11-03","2026-11-23","2027-01-01"]。祝日は内閣府の「国民の祝日」一覧から写す。
  2. 変数を用意:日付カウンタ = 当月1日、当月平日数 = 0、経過平日数 = 0。前週日曜 = formatDateTime(addDays(convertFromUtc(utcNow(),'Tokyo Standard Time'),-1),'yyyy-MM-dd')(月曜実行のため前日が日曜)。
  3. 「Do until」で日付カウンタが翌月1日になるまで繰り返す。
  4. ループ内の「条件」:dayOfWeek(日付カウンタ) が 0(日)でも 6(土)でもなく、かつ contains(outputs('祝日リスト'), 日付カウンタ) が false なら平日。
  5. 平日なら 当月平日数 を +1。さらに日付カウンタ ≤ 前週日曜 なら 経過平日数 も +1。
  6. 日付カウンタを formatDateTime(addDays(日付カウンタ,1),'yyyy-MM-dd') で翌日に進める。

運用:作成時は 2026 年と 2027 年の祝日をまとめて入れておく(年をまたいでも止まらない)。以降は年末に翌年分を追加する。祝日を返す外部 API を使えば自動化できるが、HTTP コネクタは有料プランが必要なことが多い。

3. メール通知の文面例

件名:【工数アラート】{作業者名} さん {月} 実績 {実績合計} h / 期待値 {期待消化工数} h(進捗率 {進捗率}%) 不足 {期待消化工数 − 実績合計} h。状況確認をお願いします。

4. テストのしかた

  1. 手動で「テスト」実行し、各アクションの出力を確認。
  2. 実績セルの値を一時的に小さくしたコピーで、アラートが飛ぶか確認。
  3. 月初の第1月曜(経過平日数が0)は割り算エラーになるため、経過平日数 = 0 のときは処理を終了する条件を入れる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?