PowerAppsでSortとFilterを組み合わせて使用する方法
PowerAppsでギャラリー表示させる時には、Filter関数が役立ちます。
しかし、Filter関数には順序を保証していなく、ギャラリーに出力されたアイテムが綺麗に並び替えられてはいない可能性があります。
そこで活用するのがSort関数になるわけですが、
今回は、Filter関数とSort関数を組み合わせて、ギャラリーに表示する順番を制御する方法を紹介していきます。
ギャラリーをうまく並び替えられれば、より綺麗にデータを表示させることが可能になりますので、ぜひ参考にしてみてください!
目次(クリックで読みたい部分にジャンプできます)
SortとFilterを組み合わせて使用する概要
まず使用例に入る前に簡単な概要を紹介します。
SortとFilterを組み合わせて使用するには、以下のように書きます。
Sort(
Filter(),
並び替えるカラム, //もしくは計算式
SortOrder.Ascending //もしくはSortOrder.Descending
)
Sort関数の中にFilter関数を書くような形です。
Filter関数は、データテーブルから特定の条件にあったカラムをテーブル形式で返してくれる関数です。
Filter関数で抽出されたテーブルデータに対して、カラム(もしくは計算式の結果)を基準に昇順・降順に並び替えることができます。
chatGPTで聞くと、「SortOrder」が抜けた構文が返ってきます。(執筆時点)
SortOrderが入ってるのが正しい使い方ですので、間違えないようにしてくださいね。
Sort および SortByColumns 関数 - Power Platform | Microsoft Learn
使用例①〜普通に組み合わせてみる〜
1つ目の使用例として、
従業員データから、
特定の条件のデータをFilterして、そのデータをカラム(今回は入社日)で並び替えてみます。
// 従業員データをフィルタリングし、入社日に基づいて降順でソートする
Sort(Filter(Employees, Department = "Marketing"), JoinDate, SortOrder.Descending)
Filter関数では、Employeesテーブル内の、Departmentカラムが「Marketing」であるデータを抽出しています。
その中で、JoinDateカラムに対して降順に並び替えています。
Sort関数に対しては、文字でも数字でも並び替えることができます。
今回は「日付」で並び替えていますが、文字データに対しても"あいうえお"順に並び替えることが可能です。
使用例②〜複数の属性で並び替え〜
では、次に複数の属性で並び替えたい時の方法についてです。
SortByColumnsを使用して並び替えてみます。
SortByColumnsを使用すると、まとめて行うことができます。(もちろんSort関数で複数の属性を並び替えることも可能です。)
// 従業員を部門でフィルタリングし、名前で昇順、入社日で降順にソートする
SortByColumns(Filter(Employees, Department = "Marketing"), "Name", SortOrder.Ascending, "JoinDate", SortOrder.Descending)
Filter 関数の中身は、先ほどの例と同じです。
並び替えの時に、「名前」と「入社日」に対して並び替えを行っています。
Sort関数を使用して複数項目の並び替え
Sort(
Sort(Filter(Employees, Department = "Marketing"), "Name", SortOrder.Ascending),
"JoinDate",
SortOrder.Descending
)
Sort関数を使用する場合には、分けて使用する必要があります。
もし、計算式を用いて並び替えをしたい場合は、SortByColumnsを使用することはできなく、Sort関数を使用するしかないので、
Sort関数を複数使用する方法を覚えておきましょう!
まとめ
今回は、Sort関数とFilter関数を組み合わせて使用する方法について紹介しました。
PowerAppsでギャラリー表示させたい時にとてもよく使うパターンになります。
並び替えることでユーザービリティーが向上しますので、これらを参考に試してみてくださいね。