人事異動があるたびに…
どんな企業でも人事異動というものは切っても切れない関係にあると思っていますが、皆さんの職場はどうでしょうか?
私が勤務している会社では、毎月のように何件かの人事異動、年に1回大規模な組織変更に伴う人事異動が発生しています。
そんな中、社内で使っているツールのマスタデータ更新という、地味ですがとても時間と手間のかかる業務を自動化するという夢(目標)を持って走り出したお話です。
背景
自社では、本部と店舗の連絡として「多店舗管理ツール」をブラウザ上で使用しています。
このツールの中には、本部従業員、店舗従業員などのユーザマスタデータを持っており、人事異動が発生するたびにマスタデータを更新する必要があります。
API機能などがあれば、人事データから自動連携ができるかもしれませんが、現状その機能はなく、現状は手動での更新を余儀なくされています。
しかも、なんと担当者は1人…「ザ・属人化」と呼べる状況です。
前述のとおり、毎月の数件の人事異動であれば、そこまで作業インパクトはないですが、大規模人事異動では何十件、下手したら100件以上の人事異動が発生し、担当者が数日にわたって1件ずつ処理をしています。
課題
とにかく時間と手間がかかる
このマスタ更新、単純に誰がどの部署、店舗に異動するという入力だけでは済みません。
例えば店舗の上にはそれを束ねるSVが、その上には営業所がと、階層も多岐にわたります。
担当者にヒアリングしたところ、
1件あたり、5分~10分
10件になると1時間弱~1時間半以上
かかっているということでした。
これが100件ともなると…考えたくないですね![]()
ヒューマンエラー
手作業のため、どうしても入力ミス、ファイルの選択ミス等のヒューマンエラーが起こる可能性があります。
幸い、現状大きなトラブルは起きておりませんが、万が一発生してしまった場合、本部から店舗への指示系統に影響し、最悪の場合店舗の営業に支障をきたす可能性もあります。
現行の更新手順
ここでは、人事異動による店舗側のマスタ更新ついて手順を記載していきます。
- 人事課から人事異動のファイル(Excel形式)をもらう
- 多店舗管理ツールの管理画面(ブラウザ)から、更新前のマスタシート(Excel形式)をダウンロードしてバックアップフォルダへ保存する
- 人事異動のExcelファイルをもとに、管理画面から従業員情報、店舗情報、役割情報の更新を行う
- 更新の反映を行う
- 更新後のマスタシートをダウンロードし、バックアップフォルダへ保存する
現行では1件ずつブラウザ上で行っていますが、管理画面からダウンロードするマスタシートに直接変更部分を入力し、ファイルをインポートする方法もあります。
今回の自動化は、このマスタデータファイルに人事情報を転記して取り込む方法を採用します。
使用したツール
Power Automate Desktop(以下PAD)
Excel
Google Chrome
GPT-5.5
Gemini 3.5 Flash
生成AIはフロー構成の相談として使用しました。
自動化の構成
事前準備については、以下の記事をご参照ください。
1. 人事異動ファイルを指定のフォルダに格納する
反映させる情報の元データである人事異動ファイルを人事課から受け取ったら、指定のフォルダに保存しておきます。

指定のフォルダに各人事異動ファイルを保存しておくことで、このあとPADからファイルを呼び出すというアクションがしやすくなります。
2. 多店舗管理ツールの管理画面にアクセスし、マスタシートをダウンロードする
ブラウザからログイン画面にアクセスし、管理画面に進んでいきます。
基本的に、UI要素をクリックするアクションを使っています。
アクセスするwebサイトによって、UI要素が表示されてもクリックが反応しないタイムラグが変わってきます。
「待機」アクションを長めにとることで、エラー回避できます。
「テンプレートをダウンロード」をクリックすることで、現在のマスタデータ入ったマスタシートをダウンロードすることができます。

ファイル名をに日付を入力するために、現在の日付を取得します。

取得した日付のテキストデータをファイル名に追加して保存します。


ダウンロードしたマスタシートは、共有フォルダ内にあるバックアップ保存用フォルダにコピーしておきます。

マスタの更新で万が一ミスが起きたときのために、手動更新時でもバックアップをとっていました。
ここも自動化に組み込むことでバックアップの取り忘れを防止します。
3. 必要な人事情報を抽出し、転記する
いよいよ人事情報をマスタシートに人事情報を転記していきます。

まず、保存したマスタシートを開き、転記の準備をしておきます。

次に、人事データを保存していたフォルダの中身を取得しておきます。

この後のフローで、フォルダ内のすべてのファイルに実行するアクションがあるため、事前にどんなファイルが入っているか取得しておく必要があります。
ここで、変数を設定しておきます。
今回は「NewVar3」という変数に0を入れておきます。これの使い道は後述します。

ここから「For each」(繰り返し)に入ります。
人事異動データが複数あった場合、そのすべてのファイルに対してこの後のフローを実行するための繰り返しフローになります。

反復処理を行う値(回数)は、事前に取得した人事異動データ(Files)の数になります。
次に「IF」アクションに入ります。
ここでは、処理中のファイル(CurrentItem)の名前の中に、「~$」が含まれていないかをチェックしています。
人事異動データを保存しているファイルの中に「~$」が含まれているファイル、つまり一時データがあった場合は、除外するようにしています。

最初のオペランドに記載している「CurrentItem.Name」は「CurrentItem」のファイル名を意味します。
ここから人事異動データを一つ一つ開いて、中の情報を抽出して、マスタシートに転記していく作業に入ります。
最終的に、マスタシート以下の赤枠部分を入力していくことになります。

人事異動データから情報を抽出できるのはA列とD列です。
ここで人事異動データを見てみます。

今回対象のサンプル太郎さんの従業員コードはC7セルに記載されていますので、これを抽出し変数「ExcelData」に格納します。
マスタシートの従業員コードでは、頭に00を付ける必要があるため、「変数の設定」アクションで対応します。
また、サンプル太郎さんが新しく着任する店舗はL7セルに記載されていますので、こちらも抽出し変数「ExcelData3」に格納します。

シートによって、表示形式が指定されている場合があります。
今回は、マスタシート側は「文字列」であることが必須でしたので、情報抽出の前にA列を文字列にするフローを挟んであります。
今度は、マスタシートに転記する作業に入ります。
マスタシートのExcelファイルの中で転記するシートをアクティブにしてから、変数に格納した情報を記入していきます。

ここでさっき0を設定しておいた「NewVar3」が登場します。
転記先のマスタシートへ記載する行数を変数「TargetRow」と設定し、「NewVar3 + 2」としています。
マスタシートは、2行目から記載していくため、これを設定することで複数件の人事異動データがあった場合に、どんどん次の行へ記載する仕組みのために必要なアクションです。
一つ目の人事異動データであれば、「NewVar3」が0であるため、全て2行目に記載されることになります。
この後のフローで「For each」内の最後に、「NewVar3」に1を足すアクションがあります。
つまり、次の繰り返し作業では「NewVar3」が1となっているため、記載されるのは「NewVar3 + 2」=3行目となります。
このように、繰り返しするたびに記載する行が下にずれることで、複数件の人事異動データを1つのシートにまとめることができるようになります。
最後に、処理済みの人事異動データを処理後のフォルダへ移動します。

実際に動かしてみた
社外秘の情報が含まれるため、マスタシートダウンロード後からの動きを見ていただきたいと思います。
STEP1はここまで
PADを使ったマスタ更新の第一歩、スモールスタートとして単純な転記までを作ってみました。
今後の課題
現状は、一番シンプルな人事異動への対応でしたが、実際の人事異動では、1人に対して複数店舗の異動や、エリアやSVの変更など、自動化に組み込むべき内容があります。
また、最終的にはマスタデータの取り込みや、取り込む前に人間が確認できる仕組み、人事異動データの異常通知機能なども盛り込んでいきたいと思っています。
まずは、転記できる内容を増やして、さまざまな人事異動に対応できるところを次の目標としていきます。


