Power Appsのコレクションを自在に操作するためには、関数に関する知識が欠かせません。そこで本記事では、主な関数と使い方についてわかりやすくご紹介します。また、コレクション操作の概要についても解説していきます。
Power Appsのコレクション操作とは
コレクションはプログラミング言語の「配列」と同じです。コレクションを利用すれば、ExcelのデータソースやTeamsのコネクタから得られるテーブル形式のデータを活用できるようになります。複数のコレクションを使ったデータの加工や集計も可能です。PowerAppsは、さまざまなデータソースと連携させる必要があるため、コレクションの操作方法に関する知識は不可欠となります。
Power Appsで在庫管理アプリを作る方法
ここからは、コレクションの操作に欠かせない関数を詳しくご紹介していきます。それぞれの特徴だけではなく、どのようなシーンで使えばいいのかなどについても説明していきますので、これまで関数の知識がなかったという方も参考にしてください。
コレクションの作成
まずは、コレクションの作成に役立つ関数をご紹介します。
- Collect関数
コレクションを新しく作成したいときや、データを追加したいときに使います。OnSelect属性に「Collect(」と入力するだけで構文の説明が上部に表示されるので、誰でも簡単に使いこなすことができるでしょう。
なお、最初の「Collection」と書かれている部分には、新たに作成するコレクションの名前を入力します。作成済みのものは「ビュー」→「コレクション」から確認することが可能です。同じデータ項目がある複数のデータソースからデータを取得して結合する際などにも役立つでしょう。 - ClearCollect関数
データの蓄積に使うのがCollect関数ですが データがある程度たまってくると削除したくなることもあるでしょう。そのようなときに役に立つのが、こちらの関数です。これを使えば、コレクションをすべて削除してからレコードを追加することができます。まとまったひとつの関数ですが、「Clear の後でCollectが実行される」と考えればわかりやすいでしょう。
コレクションのレコード・データ編集
- Update関数
指定したレコードの値を置換するときに使います。関数で指定しなかった列は空白になるので注意しましょう。場合によってはLookUp関数の入れ子になってしまうため、初めからUpdateIf関数を利用した方が無難です。 - UpdateIf関数
指定済みの条件と一致するレコードを一括して編集したいときに使います。条件に合致しなかった列の値は変わらず空白になりません。変更したい箇所だけを指定できるので、活用する機会は多いでしょう。And関数や&&を使えば複数条件の指定も可能です。
コレクションのレコード削除
ここからは、レコード削除に使える関数をご紹介していきます。
- Clear関数
コレクションのレコードをすべて削除したいときに使う関数です。ただし、データの項目情報は削除されません。項目情報も含めてすべて削除したい場合は以下のように書きます。
Clear(MyCollection)
削除するレコードは指定が不可であるため、ClearCollect関数を「Clear」と「Collect」に分けて使いたいときなどに活用するといいかもしれません。 - Remove関数
特定したひとつのレコードを削除するときに使います。全く同じ値のレコードがある場合は、関数の最後に「All」を指定すると、すべて同時に削除できます。Search関数などで複数のレコードを指定して削除することも可能です。 - RemoveIf関数
指定した条件と一致する複数のレコードを削除したいときに使います。
コレクションのレコード各要素への処理
ここからは、レコードの各要素を処理したいときに使える関数をご紹介します。
- ForAll関数
テーブルのレコードすべてに数式を実行する関数です。対象が全レコードになるため、データの内容を修正するときに役立ちます。修正対象を指定したいときにはPatch関数を使いましょう。テーブルの内容が複数列に及ぶ場合は、Patch関数やThisRecord演算子を用います。
コレクションのレコードの絞り込み・検索
ここからは、レコードの絞り込みと検索に使える関数をご紹介していきます。
- Filter関数
条件式に一致するレコードを絞り込みたいときに使います。Andと併用すれば、複数の条件で絞り込むこともできます。 - LookUp関数
特定のレコードか、あるいはレコードによって指定された列の値のみを表示させたいときに使います。Filter関数は条件に一致したレコードを一つ残らず返しますが、LookUp関数は条件に一致したレコードのみを返すという特徴があります。First関数とFilter関数を組み合わせた関数と考えれば、わかりやすいでしょう。なお、3番目の引数に列名を指定すれば、特定の値を出力することも可能です。 - Search関数
文字列を用いてコレクションの絞り込みをするときに使います。返されるのはFilter関数でin演算子を用いたときと同じです。
コレクションのレコード並び替え
ここからは、レコードを並び替えたいときに使う関数をご紹介していきます。
- SortByColumns関数
列を指定してレコードを並び替えたいときに使います。3番目の引数を指定しなかった場合は昇順になります。データの値を指定して並び替えることもできるので、記入例を一番上に固定したいときになどに使えるでしょう。 - Sort関数
数式でレコードを並び替えられる関数です。入れ子にすれば、複数の条件で並び替えることもできます。
コレクションの列操作
ここからは、列操作に使える関数をご紹介していきます。
- AddColumns関数
データソースやコレクションに新しく列を追加して出力します。ただし、列名は固定で、かつコレクションやデータソースと同様のものの指定は不可です。データソースの使用には制約が多いので、この関数を使って列の値に計算を行い、その結果をレコードにして出力したいときなどに使います。 - RenameColumns関数
コレクション内にある列の名前を変更して出力します。SharePointリストなどから読み込んだ列名が日本語の場合には、列名の名前の冒頭がODataに変わってしまうケースがあります。しかし、この関数を使えば、そのような名前に変わってしまった場合でも、わかりやすい列名に変えることができます。 - ShowColumns関数
コレクション内で選んだ列だけを出力します。不要な列を表示させたくないときなどに使えるでしょう。 - DropColumns関数
コレクション内で選んだ列だけを除外して出力します。ShowColumns関数は選択した列だけを表示し、DropColumns関数は選択した列だけを除外するので、合わせて覚えておくといいでしょう。
まとめ
Power Appsでコレクションを操作したいという場合には、関数の知識が欠かせません。 関数は難しいというイメージもあるかもしれませんが、今回ご紹介した関数の使い方を覚えてしまえば、思い通りに操れるようになります。Power Appsは業務要件に適したアプリをスピーディーに開発でき、コストも最小限に抑えられる有用なサービスなので、ぜひこの機会に、ノンプログラミングでアプリケーション開発ができるPowerAppsの導入をご検討ください。