6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerAutomateで配列の差集合を求める

Posted at

概要

PowerAutomateで集合を扱う場合、積集合はintersectionというコレクション関数があらかじめ用意されています。
差集合を求める場合は少し厄介で工夫が必要です。
差集合を求める方法をネットで調べてみると二重ループとアレイのフィルター処理を使う方法やOfficeScriptsを使う方法などがヒットします。
今回はシンプルにアレイのフィルター処理を使って差集合を求めてみます。

前提条件

差集合を求めるための配列型変数を2つ用意します。
ここでは配列Aと配列Bとします。
各配列には以下の値が入っています。

配列A
["test1","test2","test3","test4","test5"]

配列B
["test4","test5"]

そして今回求めたい値は以下の値です。
["test1","test2","test3"]

図にすると以下のような関係になります。
図1.png

青色の部分を求めます。

実装

配列Aと配列Bを実装します。
配列.png

次に、今回の本題であるアレイのフィルター処理を実装します。
アレイフィルター処理.png
差出人には配列Aを設定します。
値の選択の左辺には数式で以下の式をセットします。

数式
contains(variables('配列B'), item())

配列Aの要素を順番に配列Bの各要素と突き合わせ、配列Bの要素に存在しないものを取り出しています。

今回作成したフローの全体図は以下の通り。
フロー.png

実行結果

フローを実行し、アレイのフィルター処理の出力結果を確認します。
結果.png

配列Aと配列Bの差集合として["test1","test2","test3"]が取得できていることが確認できました。

まとめ

今回は差集合についてアレイのフィルター処理を活用してみました。
アレイのフィルター処理を使いこなせば、これ以外にもループ処理を用いずにデータの編集ができる場面も多いです。
アレイのフィルター処理をぜひ活用してみてください。

6
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?