ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Power Automate】重複排除してみた


Power Automate のクラウドフローで重複が多いデータから一意のデータを取り出したいことがあったので、メモ書きです。

今回使う関数「union」

union 関数についてはこちらに記載があります。

式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Docs

union 指定した複数のコレクションの "すべての" 項目を含む 1 つのコレクションを返します。

フローを作成してunion 関数の動きをみる

文字で考えるより、実行してみるとわかりやすい。
例えば、こんな感じのフローを作成する。
※Docs の表記に倣って、コレクション1とコレクション2と記載。

作成にはこちらの内容を記載。

union(createArray('だんご','ドーナツ','ドーナツ','プリン'), createArray('だんご', 'プリン','プリン','アメ'))

こんな感じになるはず。

実行結果を確認すると「だんご、ドーナツ、プリン、アメ」になっていますね。

重複しない一意のデータの取り出し

union 関数は重複を排除して一意の値だけほしい時にも使えます。
フローを作成するとこんな感じになります。

作成

createArray('だんご', 'ドーナツ','ドーナツ','プリン')

作成 union (「作成」のアクションの名前を変更して「作成 union」にしています。)

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

イメージ図。

実行結果を見るとちゃんと重複を排除して、だんご、ドーナツ、プリン になっていますね。

さいごに

Apply to each にデータを渡す際に「重複しているデータ分、同じデータで複数回実行っされていて無駄に回っているよなぁ」と思い、Docsの関数一覧とにらめっこしてたら union 関数に出会いました。
自分が扱っていたデータだと重複排除する前は800回くらいくるくる回っていた Apply to each が、重複排除したら200回くらいまで減ったので良い感じです。