Distinct関数の結果をUngroup関数で展開したいけど、うまくいかないことはありませんか?
Power AppsでDistinct関数を使った後、結果をUngroup関数で展開しようと思ったら、うまく展開できず、 [レコード]の表示から変わらないといったことはないでしょうか?

Distinct関数の結果の問題点
例えば、完全に重複したデータを削除する場合は、Distinct関数でこのように指定しますが、この場合結果がこのようにValue列に[レコード]という形になります。

直接アクセスも可能だが…
このままでもCity列を使いたい場合は、ThisItem.Value.Cityなどと記載すればギャラリーでも使えますが、今回はこの列を展開してThisItem.cityなどと使えるように列の展開を行う方法をご紹介します。
なぜTable関数が必要なのか?
ここで重要なのは、Ungroup関数で展開するためにTable関数が必要ということです。Distinct関数にThisRecord を指定している場合の結果はレコード型となり、そのままではUngroup関数が適用できない形式になっているんですね。Ungroup 関数はテーブル型のデータを展開するための関数なので、レコード型を Table 関数でテーブル型に変換する必要があります。

実際の変換手順
では、実際にやってみましょう。
まずはDistinctで使っている ThisRecord をTable関数で囲みます。

Distinct(データソース, Table(ThisRecord))
このTable関数によって、レコード形式のデータがテーブル形式に変換され、Ungroup関数が適用できる状態になります。
その後、Ungroup関数を使って:
Ungroup(Distinct(データソース, Table(ThisRecord)), Value)
このように展開することで、ThisItem.Cityといった直接的なアクセスが可能になります。

まとめ
いかがでしたでしょうか?Ungroup関数を使うためには、事前にTable関数での変換が必要だということがお分かりいただけたでしょうか。
この一手間を加えることで、データの扱いが格段に楽になりますね。今回は Distinct 関数の例ですが、レコード型の列を展開するテクニックとして覚えておくと便利なテクニックなので、ぜひ覚えておきましょう!
Power Apps学習の決定版!コントロール別YouTube再生リスト完全ガイド
Power Appsを学習していて「どのコントロールをどう使えばいいのかわからない」「実際の使い方を動画で見ながら覚えたい」と思ったことはありませんか?
実践的な知識を効率よく身につけられるよう、現在公開している動画を整理したYouTube再生リスト集をご紹介します。



コメント