Power Automateで「Excel」と「SharePointリスト」など、2つのデータソースの差分を抽出したい場面ってよくでてくる。
でも、単純に「Apply to Each」を使って総当たりでチェックしようとすると、データ量が増えた途端に処理時間が長くなりすぎてタイムアウトしたりしてしまう。
今回は、Power Automateの標準アクションだけ(アレイのフィルター処理や選択など)を使って、2つのテーブルの差分(新規追加分・削除分)を一瞬で抽出する方法(SQLの「EXCEPT句」のような処理)をご紹介。
やりたいこと


- Excelにだけあるデータ → SPOリストに新規追加
- SPOリストにだけあるデータ → SPOリストから削除
みたいな処理をしたいとする。
そのときに「Apply To Each」を使ってそれぞれのテーブルを見比べていってもいいんだけど、データ量が多いときは処理時間がかかってしまうので「データ操作」アクションで実現してみる。
事前準備:比較する列を配列化する



Excelにのみあるデータの抽出
まずはExcelにのみあるデータの抽出から。



SPOリストにのみあるデータの抽出
続いてSPOリストにだけあるデータの抽出。



「項目の作成」と「項目の削除」をApply To Eachで回す




2つのテーブルの差分を求めるときにそれぞれApply To Eachで見比べてもいいけど、データ操作のアクションを使うと処理が早く終わるよって内容でした。
コメント