概要
PowerAutomateで集合を扱う場合、積集合はintersectionというコレクション関数があらかじめ用意されています。
差集合を求める場合は少し厄介で工夫が必要です。
差集合を求める方法をネットで調べてみると二重ループとアレイのフィルター処理を使う方法やOfficeScriptsを使う方法などがヒットします。
今回はシンプルにアレイのフィルター処理を使って差集合を求めてみます。
前提条件
差集合を求めるための配列型変数を2つ用意します。
ここでは配列Aと配列Bとします。
各配列には以下の値が入っています。
配列A
["test1","test2","test3","test4","test5"]
配列B
["test4","test5"]
そして今回求めたい値は以下の値です。
["test1","test2","test3"]
青色の部分を求めます。
実装
次に、今回の本題であるアレイのフィルター処理を実装します。
差出人には配列Aを設定します。
値の選択の左辺には数式で以下の式をセットします。
contains(variables('配列B'), item())
配列Aの要素を順番に配列Bの各要素と突き合わせ、配列Bの要素に存在しないものを取り出しています。
実行結果
フローを実行し、アレイのフィルター処理の出力結果を確認します。
配列Aと配列Bの差集合として["test1","test2","test3"]が取得できていることが確認できました。
まとめ
今回は差集合についてアレイのフィルター処理を活用してみました。
アレイのフィルター処理を使いこなせば、これ以外にもループ処理を用いずにデータの編集ができる場面も多いです。
アレイのフィルター処理をぜひ活用してみてください。