🎯
PowerAppsでテーブル内の重複した値のみを抜き出す方法
概要
PowerAppsにて、特定のテーブルから重複したデータを取り除いたテーブルを出力するのは、"Distinct関数"を使用することで簡単に実装できます。
一方で、テーブル内で重複のあるデータのみを抜き出すための関数は用意されていません。
本記事では、そのやり方について解説します。
やり方
重複しているデータを抜き出すには以下の手順で行います。
① GroupBy関数で重複データをまとめる
② グループ化されたそれぞれのレコードで該当するデータ数をカウントする(
③ Filter関数でカウントされた値が2以上のレコードを表示する。
具体例
まず、テーブル(コレクション)を準備します。
ClearCollect(
社員コレクション,
{名前:"社員",出身:"東京"},
{名前:"社員B",出身:"大阪"},
{名前:"社員C",出身:"北海道"},
{名前:"社員D",出身:"沖縄"},
{名前:"社員E",出身:"東京"},
{名前:"社員F",出身:"大阪"},
{名前:"社員G",出身:"埼玉"}
)
このコレクションに対して以下の関数を適応することで、重複データのみを抜き出せます。
Filter(
AddColumns(
GroupBy(社員コレクション,"出身","peoples"),
"count",
CountRows(peoples)
),
count >= 2
)
解説
GroupeBy関数
GroupBy関数では、指定した列の値を元に他の列をグループ化することができます。
今回の例では、社員コレクションの”出身”列の値を元にグループ化し、新たに作られたpeoples列に"出身"列以外の項目がテーブルとして格納されます。
GroupBy(社員コレクション,"出身","peoples")
AddColumns関数,CountRows関数
AddColumns関数は列を一列追加し、追加した列に指定した値を格納します。
今回の例では、"count"列を追加してその列にCountRow関数で"peoples"列のレコード数をカウントした値を格納しています。
AddColumns(
{対象テーブル},
"count",
CountRows(peoples)
)
Filter関数
Filter関数により条件を指定してテーブルを出力します。
今回の例では、"count"列の値が2以上のレコードのみを表示しています。
Filter(
{対象テーブル},
count >= 2
)
これにより、重複しているデータのみが表示されるようになります。
以上
Discussion