【Power Automate Desktop】2つのExcelリストから重複データを抽出する方法【PAD】

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でのアクション追加方法をご紹介します!
コピペしたい方はこちら

STEP
Excel操作のアクション追加

①Excelの起動

今回使用するExcelファイルを開き、ExcelInstanceを保存します。

②アクティブなワークシートの設定

まずは「2024」のワークシートをアクティブ化。

③Excelワークシートから読み取る

列「A」から行「6」までのセル値を読み取りExcelDataに保存。

④⑤同様に、「2025」シートをアクティブ化し、データを取得

②③を参考に挑戦してみてニャ
「2025」は最終行が7まであるから注意!

⑥アクティブなワークシートの設定

重複データを書き込むため、「既存社員」のシートをアクティブ化します。

STEP
ループで繰り返し処理、ifで重複データを抽出

⑦For eachで繰り返し処理

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

⑧For eachで繰り返し処理

ロボ太

⑦⑧の2つのループ(For each)処理を使うことで総当たりでIDの確認ができるよ

STEP
ExcelDate0→ExcelDate20→5
STEP
ExcelDate1→ExcelDate20→5
STEP
ExcelDate2→ExcelDate20→5
STEP
ExcelDate3→ExcelDate20→5
STEP
ExcelDate4→ExcelDate20→5

⑨ifで条件分岐

「if」を使用して取得した2つのリストExcelDataExcelData2のID列を比較します。

IDが等しければへ進み、不一致であればの処理へ戻ります。

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

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

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

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

STEP
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業務を自動化するニャ

よかったらシェアしてね!
  • URLをコピーしました!
目次