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

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

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

①Excelの起動

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

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

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

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

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

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

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

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

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

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

⑦For eachで繰り返し処理

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

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

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

FirstFreeRowを使って「新入社員」のシートへの書き込み位置を指定します。

⑩For eachで繰り返し処理

ロボ太

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

STEP
ExcelDate20→ExcelDate0→5
STEP
ExcelDate21→ExcelDate0→5
STEP
ExcelDate22→ExcelDate0→5
STEP
ExcelDate23→ExcelDate0→5
STEP
ExcelDate24→ExcelDate0→5

⑪ifで条件分岐

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

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

⑫Excelワークシートから行を削除

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

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