Power Automateの配列から重複を削除したい

2022/03/20

変数のなかから、重複するものを削除したいというニーズはありそうです。例えばメール送信。リストの中に同じアドレスがあった場合、重複削除の処理をしておかないと、同じメールが複数届いてしまいます。

こんな例を作ってみました。第1アレイには、[“A","B","C"]を。第2アレイには[“B","C","D"]を入れてあります。この二つを合体させ、重複をなくして全部の値を第3アレイに格納したいと思います。図で表すとこんな感じです。

union関数をつかう

こういうときには、第3アレイの値にUnion関数をつかうとうまくいきます。

union(variables('第1アレイ'),variables('第2アレイ'))

DOCSによればunion関数は複数のコレクションのすべての項目を返してくれます。その際に同じ名前がある場合は、その名前を持つ最後の項目が含まれるとのこと。

1つのアレイからでも使える

重複を解消したいといっても、複数のアレイをつかう場合とは限りません。ひとつのアレイに重複があって、それらを削除したいケースもあります。

そんなときには、同じアレイを第1引数、第2引数の両方に指定してしまえばオッケーです。

union(variables('重複を含んだアレイ'),variables('重複を含んだアレイ'))

変数の代わりに「作成」でつくったコレクションでも大丈夫

union(outputs('作成'),outputs('作成'))

大丈夫でした。

JSONだったら?

大丈夫でした。

あらかじめ「選択」でJSONの比較したい場所だけ抽出して、結果をもとのコレクションに対してアレイフィルタで絞るって方法がよいかしら。次の課題ですね。

他にもちょっとしたPower Automateの小技を集めて書き溜めていますのでこちらからご覧ください。