Power Apps での GroupBy および Ungroup 関数

テーブルレコード のグループ化とグループ化解除を行います。

内容

GroupBy 関数は、1 つ以上の の値に基づいてレコードを一緒にグループ化したテーブルを返します。 同じグループのレコードは単一のレコードに配置され、残りの列の入れ子になったテーブルを保持する列が追加されます。

Ungroup 関数は、GroupBy プロセスを逆にします。 この関数は、一緒にグループ化されていたレコードをそれぞれのレコードに分割してテーブルを返します。

GroupBy を使用してレコードをグループ化し、返されたテーブルを変更し、次に Ungroup を使用して変更されたテーブルのレコードのグループ化を解除することができます。 たとえば、次の方法でレコードのグループを削除できます。

  • GroupBy 関数を使用します。
  • Filter 関数を使用して、レコードのグループ全体を削除します。
  • Ungroup 関数を使用します。

グループ化に基づいて結果を集計することもできます。

  • GroupBy 関数を使用します。
  • SumAverage、およびその他の集計関数とともに AddColumns 関数を使用して、グループ テーブルの集計である新しい列を追加します。
  • DropColumns 関数を使用してグループ テーブルをドロップします。

Ungroup は、GroupBy に供給されたレコードの元の順序を維持しようとします。 これは常にできるとは限りません (たとえば、元のテーブルに 空白 レコードが含まれている場合です)。

テーブルは、文字列や数値と同じように、Power Apps の値です。 関数の引数としてテーブルを指定し、関数はテーブルを返すことができます。 GroupBy および Ungroup はテーブルを変更せず、代わりに、テーブルを引数として受け取り、別のテーブルを返します。 詳細については、テーブルの使用 に関するページを参照してください。

構文

GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table - 必須。 グループ化するテーブル。

  • ColumnName(s) - 必須。 レコードをグループ化する テーブル 内の列名。 これらの列は、結果のテーブルの列になります。

  • GroupColumnName - 必須。 ColumnName(s) にないレコード データの記憶域の列名。

    注意

    名前にスペースが使われている SharePoint と Excel のデータ ソースの場合、各スペースを "_x0020_" として指定します。 たとえば、"Column Name""Column_x0020_Name" として指定します。

Ungroup( Table, GroupColumnName )

  • Table - 必須。 グループ化を解除するテーブル。

  • GroupColumnName - 必須。 GroupBy 関数を用いたレコード データの設定を含む列。

    注意

    名前にスペースが使われている SharePoint と Excel のデータ ソースの場合、各スペースを "_x0020_" として指定します。 たとえば、"Column Name""Column_x0020_Name" として指定します。

コレクションの作成

  1. ボタンを追加し、その Text プロパティを設定し、ボタンに オリジナル と表示されるようにします。
  2. オリジナル ボタンの OnSelect プロパティを次の数式に設定します。
ClearCollect( CityPopulations, 
    { City: "London",    Country: "United Kingdom", Population: 8615000}, 
    { City: "Berlin",    Country: "Germany",        Population: 3562000}, 
    { City: "Madrid",    Country: "Spain",          Population: 3165000}, 
    { City: "Rome",      Country: "Italy",          Population: 2874000}, 
    { City: "Paris",     Country: "France",         Population: 2273000}, 
    { City: "Hamburg",   Country: "Germany",        Population: 1760000}, 
    { City: "Barcelona", Country: "Spain",          Population: 1602000}, 
    { City: "Munich",    Country: "Germany",        Population: 1494000}, 
    { City: "Milan",     Country: "Italy",          Population: 1344000}
)
  1. Alt キーを押しながら、オリジナル ボタンを選択します。

    次のデータが含まれた CityPopulations という名前のコレクション が作成されました。

    CityPopulations 例 のデータが含まれた CityPopulations という名前の コレクション が作成されました

  2. このコレクションを表示するには、ファイル メニューの コレクション を選択し、次に CityPopulations コレクションを選択します。 コレクション内の最初の 5 つのレコードが表示されます。

    CityPopulations コレクション。

レコードのグループ化

  1. 他のボタンを追加し、その Text プロパティを "グループ" に設定します。

  2. このボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )

  3. Alt キーを押しながら、グループ ボタンを選択します。

    前のコレクションのレコードが、 列によってグループ化されている CitiesByCountry という名前のコレクションが作成されました。

    グループ化された都市。

  4. このコレクションに含まれている最初の 5 つのレコードを表示するには、ファイル メニューの コレクション を選択します。

    国別都市。

  5. 国の市区町村の人口を表示するには、その国 (例: ドイツ) の 市区町村 列内のテーブル アイコンを選択します。

    人口 - ドイツ。

レコードのフィルターおよびグループ化解除

  1. 他のボタンを追加し、その Text プロパティを設定し、ボタンが "フィルター" と表示されるようにします。

  2. このボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. Alt キーを押しながら、追加したボタンを選択します。

    名前に "e" を持つ (つまり、スペインまたはイタリアではない) これらの国のみを含む、CitiesByCountryFiltered という名前の 3 つ目のコレクションが作成されました。

    CitiesByCountryFiltered.

  4. もう 1 つボタンを追加し、その Text プロパティを設定し、ボタンが "グループ化の解除" と表示されるようにします。

  5. このボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, "Cities" ) )

    結果は次のようになります。

    グループ解除後の国別の都市。

結果の集計

このほか、グループ化したテーブルでは結果を集計することができます。 この例では、各国の主な市区町村の人口を合計します。

  1. 他のボタンを追加し、その Text プロパティを設定し、"合計" と表示されるようにします。

  2. "合計" ボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )

    結果は次のようになります。

    都市の合計。

    AddColumns では、ベースである CitiesByCountry コレクションで始まり、新しい列である 市区町村人口の合計 が追加されます。 この列の値では、数式 Sum( Cities, Population ) に基づいて、行単位で計算されます。 AddColumns は、各行に 市区町村 列 (テーブル) の値を提供し、Sum は、このサブ テーブルの各行に 人口 を追加します。

    これで、必要な合計が得られたので、DropColumns を使用してサブ テーブルを削除できます。

  3. 他のボタンを追加し、"SumOnly" と表示されるように、その Text プロパティを設定します。

  4. "SumOnly" ボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Cities" ) )

    結果は次のようになります。

    国の合計。

    このテーブルのグループ化を解除する必要がなかったことに注意してください。

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。