Excelを使用した業務では、年度ごとの社員リストや顧客リストを管理することがよくあります。

新しく追加されたデータを抽出する作業は手間がかかるニャ
本記事では、Power Automate Desktop(PAD)を活用し、異なる年のExcelリストから差分データを自動抽出するフローを作成する方法を解説します。これにより、新入社員リストなどを簡単に作成できるようになります。


- PADを通じて2つのExcelリストの差分データを別シートに抽出する方法
- Excelサンプルデータのコピー
- PADフローのコピーテキスト



2つのリストの重複データを別シートに抽出する方法はこちら


事前準備:必要なExcelファイルの準備
1つのExcelファイルに3つのシートを作成
今回使用するExcelファイルには、以下の3つのシートが含まれています。
- 2024年シート:前年の社員リスト(ID・名前・職種)
- 2025年シート:今年の社員リスト(ID・名前・職種)
- 新入社員シート:2025年シートから2024年に存在しないデータを抽出
ファイル名は「PAD_リスト抽出_差分データ」にして保存します。





Excel作るの面倒だニャ



面倒な方はコピペも利用してください!
コピペ用
2024年シート
ID | 名前 | 職種 |
---|---|---|
274 | 三木 | 営業 |
345 | 田中 | 総務 |
374 | 佐藤 | 経理 |
412 | 能勢 | 技術 |
745 | 鈴木 | 営業 |
2025年シート
ID | 名前 | 職種 |
---|---|---|
274 | 三木 | 営業 |
345 | 田中 | 総務 |
412 | 能勢 | 技術 |
745 | 鈴木 | 営業 |
748 | 木下 | 経理 |
新入社員シート
ID | 名前 | 職種 |
---|



フローを活かすExcel作成のポイント
- 2つのExcelシートに共通のIDがいくつか存在するようにする
- データを抽出するシートを作成する
【Power Automate Desktop】フロー作成の手順
PADで「新しいフロー」を作成し、アクションを追加



PADでのアクション追加方法をご紹介します!
コピペしたい方はこちら


①Excelの起動


今回使用するExcelファイルを開き、ExcelInstance
を保存します。
②アクティブなワークシートの設定


まずは「2024」のワークシートをアクティブ化。
③Excelワークシートから読み取る


列「A」から行「6」までのセル値を読み取りExcelData
に保存。
④⑤同様に、「2025」シートをアクティブ化し、データを取得



②③を参考に挑戦してみてニャ
「2025」は最終行が7まであるから注意!
⑥アクティブなワークシートの設定
重複データを書き込むため、「新入社員」のシートをアクティブ化します。


⑦For eachで繰り返し処理


ループ処理「 For each」を使用し、2025年のリストが格納されたExcelData2
を繰り返し実行します。


⑧Excelワークシートから最初の空の列や行を取得




⑨Excelワークシートに書き込む


FirstFreeRow
を使って「新入社員」のシートへの書き込み位置を指定します。
⑩For eachで繰り返し処理







⑦⑩の2つのループ(For each)処理を使うことで総当たりでIDの確認ができるよ
ExcelDate2
0→ExcelDate
0→5ExcelDate2
1→ExcelDate
0→5ExcelDate2
2→ExcelDate
0→5ExcelDate2
3→ExcelDate
0→5ExcelDate2
4→ExcelDate
0→5⑪ifで条件分岐


「if」を使用して取得した2つのリストExcelData
とExcelData2
のID列を比較します。
IDが等しければ⑫へ進み、不一致であれば⑩の処理へ戻ります。
⑫Excelワークシートから行を削除






⑯Excelを閉じる


アクションを使用してドキュメントを保存し、Excelを閉じます。
重複データ抽出完了!



下記の通り「新入社員」に「2024」「2025」の差分データが抽出されていれば成功です!





便利だニャ



「2024」のリストから「2025」の重複データを削除する事で、退職者の抽出もできるよ!
コピペで完成!



アクションを作成するのが面倒な方は、以下のテキストを新規のフロー画面に貼り付けてみて下さい!
ドキュメントのパスは、ご自身のPC環境に合わせて変更してくださいね
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $”’C:\Users\○○\Desktop\PAD_リスト抽出_差分データ.xlsx”’ Visible: True ReadOnly: False Instance=> ExcelInstance
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: 2024
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance StartColumn: $”’A”’ StartRow: 2 EndColumn: $”’C”’ EndRow: 6 ReadAsText: False FirstLineIsHeader: False RangeValue=> ExcelData
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: 2025
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance StartColumn: $”’A”’ StartRow: 2 EndColumn: $”’C”’ EndRow: 7 ReadAsText: False FirstLineIsHeader: False RangeValue=> ExcelData2
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: $”’新入社員”’
LOOP FOREACH CurrentItem IN ExcelData2
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem Column: $”’A”’ Row: FirstFreeRow
LOOP FOREACH CurrentItem2 IN ExcelData
IF CurrentItem[‘Column1’] = CurrentItem2[‘Column1’] THEN
Excel.DeleteRow Instance: ExcelInstance Index: FirstFreeRow
END
END
END
Excel.CloseExcel.Close Instance: ExcelInstance
まとめ



2つのExcelリストから差分データを抽出する方法をご紹介しました!
- 2つのExcelシートから共通するIDのデータを抽出し、重複データを削除。新しいExcelに転記する方法を解説
- ループを2つ使用する事がポイント
- 応用として、複数のシート比較やフィルタリング条件の追加も可
今回はPower Automate Desktopを使い、2つのExcelリストを比較し、新しいデータ(新入社員)を抽出する方法を紹介しました。
このフローは応用することで、例えば退職者のリスト作成や、顧客リストの更新などにも活用できます。



ぜひ今回の手順を参考に、自動化の幅を広げてみてください!



Power Automate Desktopを活用して、Excel業務を自動化するニャ