複数のレコードを処理する式を利用する
他の Power Apps のラーニング パスを通して、1 つのレコードを操作するために数式を使用することに注目してきました。 これは Power Apps を使用する最適な方法です。 より複雑なアプリを構築するときは、1 つの数式で複数のレコードを処理して使用する必要が生じることがよくあります。 このモジュールでは、テーブル、レコード、コレクションを処理するために使用される、より一般的な関数のいくつかに注目して学習します。
このモジュールの残りをわかりやすくするために、このコンテンツではテーブルとレコードについて示します。 テーブルは、1 列または複数列と 1 行または複数行のデータで構成されるデータ セットです。 レコードは、テーブルの個々の行を参照するために使用される名前です。 テーブルは、Table 関数を使用したり、表形式のデータ ソースから手動で作成できます。 コレクションはテーブルを保存する特殊な変数です。 このモジュール全体で、テーブルとコレクションは同義です。 つまり、任意の関数をデータのテーブルで使用でき、コレクションで使用できるということです。
複数のレコードに基づく計算
場合によっては、関数はテーブルを変更するのではなく、データに関する算術演算を実行します。 最も基本的なものは CountRows 関数です。 このシンプルな関数は、テーブル内の行 (レコード) 数をカウントするために使用されます。 Sum や Average など、従来の数学関数もあります。 これらの関数では、データのテーブルで算術演算を処理します。 これについては次のユニットでさらに詳しく説明します。
データを分割して結合する
データを使用する場合、データを表示するために変換したり、適切に並べ替えたりする必要があることが多いです。 たとえば、ラベルにレコードを表示することはできません。 これらのレコードをデータのコンマ区切りのリストに変更するには、Concat 関数を使用できます。 この関数ではデータのテーブルを処理する数式を指定することができ、各レコードの結果は指定した文字列によって区切られます。 また、Split 関数ではこの逆を行うこともできます。 Split 関数を使用して、コンマなどの文字列で区切られている文字列を取得し、データのテーブルに変換できます。 どちらの関数も、必要な方法でデータを使用する可能性を開きます。
データのテーブル全体でアクションを実行する
使用可能な組み込み関数がない方法で、データを処理する必要がある状況があります。 このインスタンスでは、ForAll 関数を使用できます。 ForAll は、現在のレコードですべてのデータを参照しながら、テーブル内のレコードごとに 1 回数式を実行できる動的関数です。 たとえば、テーブルのすべての顧客に個別のメールを送信する場合、ForAll 関数では顧客ごとに 1 回 Office365.SendEmail 関数を実行できます。
テーブルは変形可能
このモジュールに取り組むとき、すべての関数がデータのテーブルを扱うものであることを覚えておいてください。 これには、Table 関数で作成するテーブル、表形式のデータ ソースから取得されるテーブル、コレクション、テーブルを出力する数式が含まれます。 Filter や Search などの関数ではデータのテーブルを出力し、データのテーブルで関数を使用できます。 たとえば、テーブルの請求書の合計を計算するために、Sum(CustomerEntity, InvoiceAmount) を使用する可能性があります。 しかし、Country が Germany と等しい顧客を合計のみする場合、数式を Sum(Filter(CustomerEntity, Country = "Germany"), InvoiceAmount) に変更することで、データをフィルター処理することもできます。 この概念は、このモジュール全体ですべての関数に適用されます。 次のユニットでは、テーブル全体で算術演算を使用する方法について学習します。