【Power Apps】Power Apps ~ 基本編 / Collection ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/02/05/000322
https://dk521123.hatenablog.com/entry/2023/02/06/144231
https://dk521123.hatenablog.com/entry/2023/02/07/001115

の続き。

今回は、Power Appsにおいて、
配列・リストに当たるCollection の操作を調べてみた。

目次

【1】コレクションの作成
 1)ClearCollect
【2】データ編集
 1)Update関数
 2)UpdateIf関数
 3)Patch 関数
【3】レコード削除
 1)Clear関数
 2)Remove関数
【4】繰り返し処理
 1)ForAll関数
【5】絞り込み・検索
 1)Filter関数
 2)LookUp関数
 3)Search関数
【6】ソート処理
 1)SortByColumns関数
【7】列操作
 1)AddColumns関数
 2)RenameColumns関数
 3)ShowColumns関数
 4)DropColumns関数
【8】カウント
 1)Count 関数
 2)CountA 関数
 3)CountIf 関数
 4)CountRows 関数

【1】コレクションの作成

1)ClearCollect

* 持っているデータをクリアして格納

// Tree viewにあるAppを選択して、OnStartプロパティに設定する
ClearCollect(Members,
  {id: "01", name: "Mike", position: "Senior engineer", team: ""},
  {id: "02", name: "Tom", position: "Junior engineer", team: ""},
  {id: "03", name: "Kevin", position: "Senior engineer", team: ""},
  {id: "04", name: "Sam", position: "Junior engineer", team: ""},
  {id: "05", name: "James", position: "Junior engineer", team: ""},
  {id: "06", name: "Benjamin", position: "Senior engineer", team: ""}
);

【2】データ編集

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-update-updateif

1)Update関数

* 指定したレコードの値を修正する

構文

Update( データソース, 置換前レコード, 置換後レコード [, All ] )

2)UpdateIf関数

* 指定した条件でレコードの値を修正する

UpdateIf(Members, position="Junior engineer", {team: "A"})

3)Patch 関数




Patch(Members, First(Filter(Members, position="Junior engineer")), {team: "B"})

【3】レコード削除

1)Clear関数

* コレクションのレコードを全て削除

2)Remove関数

* 指定したひとつのレコードを削除

【4】繰り返し処理

1)ForAll関数

構文

ForAll( データソース , 繰り返す処理)

【5】絞り込み・検索

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-filter-lookup

1)Filter関数

* 指定した条件に合う列を全て返す

構文

Filter(テーブル,条件式1 [,条件式2, ... ] )

テーブル:検索対象のテーブル
条件式:検索対象を指定する条件式

ClearCollect(Members,
 Filter(Members, ThisRecord.position = "Senior engineer"))

2)LookUp関数

* 指定した条件の最初の列を返す
* Excelの VLOOKUP関数と同じような

https://dk521123.hatenablog.com/entry/2012/12/05/020616

構文

LookUp(テーブル, 条件式 [, 内部計算式 ] 

3)Search関数

* 指定した検索語句が含まれる列を返す

構文




【6】ソート処理

* 並び替え処理

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-sort

1)SortByColumns関数

* 1 つまたは複数の列を並べ替える

https://qiita.com/sheenbanach/items/b5bafebd6851986faf94

ClearCollect(Members,
  SortByColumns(Members, "position", SortOrder.Descending))

【7】列操作

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-table-shaping

1)AddColumns関数

ClearCollect(Members, AddColumns(Members, "team", "-"))

2)RenameColumns関数

3)ShowColumns関数

4)DropColumns関数

【8】カウント

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-table-counts

1)Count 関数

* 単一列テーブルのレコードのうち、
 数値が含まれるレコード数をカウント

構文

// SingleColumnTable - 必須。 カウントするレコードの列
Count( SingleColumnTable )

2)CountA 関数

* 単一列テーブルのレコードのうち、
 空白でないレコード数をカウント
 => 空 のテキスト ("") もカウント

構文

// SingleColumnTable - 必須。 カウントするレコードの列
CountA( SingleColumnTable )

3)CountIf 関数

* テーブルのレコードのうち、
 論理式で true になるレコード数をカウント

構文

// Table - 必須。 カウントするレコードのテーブル
// LogicalFormula - 必須。 テーブルの各レコードについて評価する数式
CountIf( Table, LogicalFormula )

4)CountRows 関数

* テーブルのレコード数をカウント

構文

// Table - 必須。 カウントするレコードのテーブル
CountRows( Table )

参考文献

https://www.cloudtimes.jp/dynamics365/blog/power-apps-collection
https://www.geekfujiwara.com/tech/1138/

関連記事

Power Apps ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/02/05/000322
Power Apps ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/06/144231
Power Apps ~ 基本編 / コンポーネント
https://dk521123.hatenablog.com/entry/2023/02/07/001115
VLOOKUP関数 / TEXT関数
https://dk521123.hatenablog.com/entry/2012/12/05/020616