Excelを使ってデータ管理をしていると、異なるリストで重複するデータを抽出したい場面があります。

何度もあっち見てこっち見て面倒だニャ
本記事では、Power Automate Desktop(PAD)を使って、Excelの2つのシート(2024年、2025年)から共通するIDを持つデータを抽出し、既存の別シートに転記するフローの作り方を解説します。





1,000件以上の膨大な量のリストでも、PADならあっという間に重複データを抽出できるよ!
- PADを通じてExcelの重複データを別シートに抽出する方法
- Excelサンプルデータのコピー
- PADフローのコピーテキスト



2つのExcelリストから差分データを抽出したい方はこちら↓


事前準備:必要なExcelファイルの準備
1つのExcelファイルに3つのシートを作成
1つのExcelファイルに「2024」「2025」「既存社員」という3つのシートを作成。
ファイル名は「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」を使用し、2024年のリストが格納されたExcelData
を繰り返し実行します。


⑧For eachで繰り返し処理







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


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




「既存社員」のシートへの書き込み位置を決定します。
⑪Excelワークシートに書き込む


重複したデータ行を記入します。


⑮Excelを閉じる


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



下記の通り「既存社員」に重複データが抽出されていれば成功です!





便利だニャ
コピペで完成!



アクションを作成するのが面倒な方は、以下のテキストを新規のフロー画面に貼り付けてみて下さい!
ドキュメントのパスは、ご自身の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 ExcelData
LOOP FOREACH CurrentItem2 IN ExcelData2
IF CurrentItem[‘Column1’] = CurrentItem2[‘Column1’] THEN
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem Column: $”’A”’ Row: FirstFreeRow
END
END
END
Excel.CloseExcel.CloseAndSave Instance: ExcelInstance
まとめ



2つのExcelリストから重複データを抽出する方法をご紹介しました!
- 2つのExcelシートから共通するIDのデータを抽出し、新しいExcelに転記する方法を解説
- ループを2つ使用する事がポイント
- 応用として、複数のシート比較やフィルタリング条件の追加も可



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