適用対象: キャンバス アプリ
Copilot Studio
デスクトップ フロー
モデル駆動型アプリ
Power Platform CLI
Dataverse 関数
列を追加、削除、名前変更、および選択して、 テーブルまたはレコード を図形化 します。
ForAll 関数は、既存の列から作成された新しいレコードのテーブルを返すことによって、テーブルの整形にも使用できます。
概要
これらの関数は、列を調整してテーブルまたはレコードを整形します。
- 複数の列を含むテーブルまたはレコードを、 Lower や Sqrt などの単一列関数で使用するために 1 つの列に減らします。
- 計算列をテーブルまたはレコードに追加します (たとえば、数量と単価を乗算した結果を示す [Total Price]\(合計価格\) 列)。
- ユーザーに表示するため、または数式で使用するために、列の名前をよりわかりやすく変更します。
テーブルは、文字列や数値と同じように、Power Apps の値です。 テーブルは計算式内で引数として指定できるほか、関数から結果として返すことができます。
注意
このトピックで説明する関数は、元のテーブルを変更しません。 その代わりに、引数としてテーブルを受け取り、変換が適用された新しいテーブルを返します。 詳細については、テーブルの使用を参照してください。
これらの関数を使用しても、データ ソース の列は変更できません。 そのデータは、ソースで変更する必要があります。 Collect 関数を使用して、コレクション に列を追加できます。 詳細については、データ ソースの使用 を参照してください。
内容
AddColumns関数は、テーブルまたはレコードに列を追加し、数式でその列の値を定義します。 既存の列は変更されません。
数式は、指定されたレコード、または指定されたテーブルの各レコードに対して評価されます。
現在処理されているレコードのフィールドは、この数式内で使用できます。 ThisRecord 演算子を使用するか、他の値を参照するのと同様に名前でフィールドを参照します。 As 演算子を使用して処理対象のレコードを指定することもできます。そうすると数式がわかりやすくなり、入れ子になったレコードにアクセスしやすくなります。 詳細については、以下の例と「レコードのスコープに関する作業」を参照してください。
DropColumns関数は、テーブルまたはレコードから列を除外します。 それ以外の列はすべて変更されません。 DropColumns は列を除外し、 ShowColumns には列が含まれます。
RenameColumns関数を使用して、テーブルまたはレコードに含まれる列の名前 (置き換える古い名前) とテーブルまたはレコードに含まれていない列の名前 (新しい名前、 使用する) を選択します。 古い名前はテーブルまたはレコードに既に存在している必要があり、新しい名前は存在しない必要があります。 各列名は、引数リストに古い列名または新しい列名として 1 回だけ表示できます。 列の名前を既存の列名に変更するには、まず、 DropColumnsを使用して既存の列を削除するか、別の RenameColumns 関数を入れ子にして既存の列の名前を変更します。
ShowColumns関数には、テーブルまたはレコードの列が含まれており、他のすべての列が削除されます。 ShowColumnsを使用して、複数列のテーブルまたはレコードから単一列のテーブルまたはレコードを作成できます。 ShowColumns には列が含まれており、 DropColumns は列を除外します。
これらすべての関数の結果は、変換が適用された新しいテーブルまたはレコードになります。 元のテーブルまたはレコードは変更されません。 数式を使用して既存のテーブルまたはレコードを変更することはできません。 SharePoint、Microsoft Dataverse、SQL Server、およびその他のデータ ソースには、スキーマと呼ばれるリストやテーブルの列を変更するためのツールが用意されています。 このトピックの関数は、元のテーブルまたはレコードを変更せずに入力テーブルまたはレコードのみを出力テーブルまたはレコードに変換して、さらに使用します。
これらの関数の引数は委任をサポートします。 たとえば、'[dbo].[AllListings]'データ ソースには100万行が含まれている場合でも、Filter 関数が引数として使用され、関連するレコード検索をすべてのリストから取得します。
AddColumns( RealEstateAgents,
Listings,
Filter( '[dbo].[AllListings]', ListingAgentName = AgentName )
)
ただし、これらの関数の出力は委任されていないレコードの制限 の対象になります。 この例では、RealEstateAgents データ ソースには 501 以上のレコードがある場合でも、500 レコードだけが返されます。
この方法で AddColumns を使用する場合、 Filter は RealEstateAgents の最初のレコードごとにデータ ソースを個別に呼び出す必要があります。これにより、多数のネットワーク チャットが発生します。 [dbo](.[AllListings] が十分に小さく、頻繁に変更されない場合。 アプリの起動時に、OnStart で Collect 関数を呼び出して、データ ソースをアプリにキャッシュすることができます。 代替策として、ユーザーが要求したときにのみ関連レコードを取得するように、アプリを再構築することもできます。
注意
バージョン 3.24042 より前の Power Apps では、列名は二重引用符を使用したテキスト文字列で指定され、データ ソースに接続されている場合は論理名である必要がありました。 たとえば、引用符のない表示名 名前 の代わりに、二重引用符で囲まれた論理名 "cr43e_name" が使用されました。 SharePoint およびスペースを含む列名を含む Excel データ ソースの場合、各スペースは "_x0020_" で指定されます。たとえば、"列名" は "Column_x0020_Name" となります。 このバージョン以降、すべてのアプリはこの記事で説明されている新しい構文に自動的に更新されました。
構文
AddColumns( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )
- TableOrRecord - 必須。 操作するテーブルまたはレコード。
- ColumnNames - 必須。 追加する列の名前。
- 数式 - 必須。 各レコードについて評価する数式。 結果は、対応する新しい列の値として追加されます。 この数式では、テーブルまたはレコードの他の列を参照できます。
DropColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )
- TableOrRecord - 必須。 操作するテーブルまたはレコード。
- ColumnNames - 必須。 削除する列の名前。
RenameColumns( TableOrRecord, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )
- TableOrRecord - 必須。 操作するテーブルまたはレコード。
- OldColumnNames - 必須。 元のテーブルまたはレコードから名前を変更する列の名前。 この要素は、引数のペアの先頭に (または、数式に複数のペアが含まれている場合は、各引数の先頭に) 表示されます。
- NewColumnNames - 必須。 置換後の名前。 この要素は、引数のペアの末尾に (または、数式に複数のペアが含まれている場合は、各引数のペアの末尾に) 表示されます。
ShowColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )
- TableOrRecord - 必須。 操作するテーブルまたはレコード。
- ColumnNames - 必須。 表示する列の名前。
使用例
このセクションの例では、次のテーブルにデータが含まれている IceCreamSales データ ソースを使用します。
これらの例ではいずれも、IceCreamSales データ ソースは変更されません。 各関数は、データ ソースの値をテーブルに変換し、その値を結果として返します。
式 | 内容 | 結果 |
---|---|---|
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) | 結果に Revenue 列を追加します。 各レコードで UnitPrice * QuantitySold が評価され、その結果が新しい列に配置されます。 |
![]() |
DropColumns( IceCreamSales, UnitPrice ) | 結果から UnitPrice 列を除外します。 この関数を使用して列を除外し、 ShowColumns を使用して列を含めます。 |
![]() |
ShowColumns( IceCreamSales, Flavor ) | 結果に Flavor 列のみを表示します。 この関数には列を含め、 DropColumns を使用して列を除外します。 |
![]() |
RenameColumns(IceCreamSales、UnitPrice、Price) | 結果の UnitPrice 列の名前を変更します。 |
![]() |
RenameColumns(IceCreamSales、UnitPrice、Price、QuantitySold、Number) | 結果の UnitPrice 列と QuantitySold 列の名前を変更します。 |
![]() |
DropColumns( RenameColumns( AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ), UnitPrice,Price ), Quantity ) |
次のテーブル変換を、数式の内側から順に実行します:
|
![]() |
手順
この記事ですでに説明した例をいくつか試してみましょう。
Button コントロールを追加してコレクションを作成し、その OnSelect プロパティを次の数式に設定します。
ClearCollect( IceCreamSales, Table( { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 }, { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 }, { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 } ) )
Alt キーを押したまま、追加したボタンを選択します。
2 番目のButton コントロールを追加し、その OnSelect プロパティを次の計算式に設定し、実行します。
ClearCollect( FirstExample, AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) )
ファイル メニューでコレクションを選択し、それから IceCreamSales を選択してそのコレクションを表示します。
この図が示すように、2 番目の計算式はこのコレクションを変更しませんでした。 AddColumns関数は、読み取り専用引数として IceCreamSales を使用しました。この関数は、その引数が参照するテーブルを変更しませんでした。
FirstExample を選択します。
この図が示すように、2 番目の計算式は、列が追加された新しいテーブルを返しました。 ClearCollect 関数は、FirstExample コレクションの新しいテーブルをキャプチャし、ソースを変更せずに関数を介してフローした元のテーブルに追加します。
コンポーネントで列をマップする
列のマップ を参照します。