GroupBy- und Ungroup-Funktionen

Gilt für: Canvas-Apps Modellgesteuerte Apps

Gruppiert und hebt die Gruppierung von Datensätzen in einer Tabelle auf.

Beschreibung

Die GroupBy-Funktion gibt eine Tabelle mit Datensätzen zurück, die auf der Basis der Werte in einer oder mehreren Spalten gruppiert sind. Datensätze in der gleichen Gruppe werden in einem einzelnen Datensatz platziert. Dabei wird eine Spalte hinzugefügt, die eine geschachtelte Tabelle der übrigen Spalten enthält.

Die Ungroup-Funktion kehrt den GroupBy-Prozess um. Diese Funktion gibt eine Tabelle zurück, die die zuvor gruppierten Datensätze in einzelne Datensätze aufteilt.

Sie können Datensätze mithilfe der Funktion GroupBy gruppieren. Ändern Sie die Tabelle, die zurückgegeben wird, und heben Sie anschließend die Gruppierung der Datensätze in der geänderten Tabelle über die Funktion Ungroup wieder auf. Beispielsweise können Sie eine Gruppe von Datensätzen entfernen, indem Sie diesem Ansatz folgen:

  • Verwenden Sie die GroupBy-Funktion.
  • Verwenden Sie die Filter-Funktion, um die gesamte Gruppe von Datensätzen zu entfernen.
  • Verwenden Sie die Ungroup-Funktion.

Sie können Ergebnisse auch aufgrund einer Gruppierung aggregieren:

  • Verwenden Sie die GroupBy-Funktion.
  • Verwenden Sie die AddColumns-Funktion mit Sum, Average und anderen Aggregatfunktionen, um eine neue Spalte hinzufügen, bei der es sich um ein Aggregat der Gruppentabellen handelt.
  • Verwenden Sie die DropColumns-Funktion, um die Gruppentabelle zu löschen.

Ungroup versucht, die ursprüngliche Reihenfolge der Datensätze zu erhalten, die von GroupBy eingelesen wurden. Dies ist nicht immer möglich (z.B. wenn die ursprüngliche Tabelle leere Datensätze enthält).

Tabellen stellen in Power Apps einen Wert dar, genau wie Zeichenfolgen oder Zahlen. Sie können eine Tabelle als Argument für eine Funktion angeben, und eine Funktion kann eine Tabelle zurückgeben. GroupBy und Ungroup führen nicht zur Änderung einer Tabelle; stattdessen verwenden sie die Tabelle als Argument und geben eine andere Tabelle zurück. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.

Anmerkung

In Power Apps vor Version 3.24042 wurden Spaltennamen mit einer Textzeichenfolge in Anführungszeichen angegeben. Wenn sie mit einer Datenquelle verbunden waren, mussten es auch logische Namen sein. Beispielsweise wurde der logische Name „cr43e_name“ mit Anführungszeichen anstelle des Anzeigenamens Name ohne Anführungszeichen verwendet. Für SharePoint- und Excel-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, wurde jedes Leerzeichen mit „_x0020_“ angegeben, zum Beispiel „Column Name“ als „Column_x0020_Name“. Nach dieser Version wurden alle Apps automatisch auf die in diesem Artikel beschriebene neue Syntax aktualisiert.

Syntax

GroupBy( Tabelle, SpaltenName1 [, SpaltenName2, ... ], GruppenSpaltenName )

  • Table – Erforderlich. Zu gruppierende Tabelle.
  • ColumnName(s) – Erforderlich. Die Spaltennamen der Tabelle für die Gruppierung der Datensätze. Diese Spalten werden in der Ergebnistabelle zu Spalten.
  • GruppenSpaltenName: erforderlich. Der Spaltenname für die Speicherung von Datensatzdaten, die nicht in SpaltenName(n) enthalten sind.

Ungroup( Table, GroupColumnName )

  • Table – Erforderlich. Tabelle, deren Gruppierung aufgehoben werden soll.
  • GruppenSpaltenName: erforderlich. Die Spalte mit dem Datensatzdaten-Setup mit der GroupBy-Funktion.

Beispiele

Sammlung erstellen

  1. Fügen Sie eine Schaltfläche hinzu, und legen Sie Ihre Text-Eigenschaft so fest, dass die Schaltfläche Original anzeigt.
  2. Legen Sie die Eigenschaft OnSelect der Schaltfläche Original auf diese Formel fest:
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. Halten Sie die ALT-TASTE gedrückt, und klicken Sie auf die Schaltfläche Ursprünglich.

    Sie haben jetzt eine Sammlung mit dem Namen CityPopulations erstellt, die die folgenden Daten enthält:

    Beispiel CityPopulations.

  2. Um diese Sammlung anzuzeigen, wählen Sie im Menü Datei die Option Sammlungen und anschließend die Sammlung CityPopulations aus. Die ersten fünf Datensätze in der Sammlung werden angezeigt:

    CityPopulations-Sammlung

Gruppieren von Datensätzen

  1. Fügen Sie eine andere Schaltfläche hinzu, und legen Sie deren Text-Eigenschaft auf Group fest.

  2. Legen Sie die Eigenschaft OnSelect der Schaltfläche auf diese Formel fest:

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

  3. Halten Sie die ALT-TASTE gedrückt, und klicken Sie auf die Schaltfläche Gruppe.

    Sie haben jetzt eine Sammlung mit dem Namen CitiesByCountry erstellt, in der die Datensätze der vorherigen Sammlung mithilfe der Spalte Country gruppiert werden.

    Städte gruppiert

  4. Um die ersten fünf Datensätze in dieser Sammlung anzuzeigen, wählen Sie im Menü Datei die Option Sammlungen aus.

    Städte nach Ländern/Regionen.

  5. Zum Anzeigen der Einwohnerzahlen der Städte in einem Land/einer Region wählen Sie das Tabellensymbol in der Spalte Städte für dieses Land/diese Region aus (z.B. Deutschland):

    Bevölkerung – Deutschland

Filtern und Aufheben der Gruppierung von Datensätzen

  1. Fügen Sie eine andere Schaltfläche hinzu, und legen Sie deren Text-Eigenschaft so fest, dass die Schaltfläche „Filter“ anzeigt.

  2. Legen Sie die Eigenschaft OnSelect der Schaltfläche auf diese Formel fest:

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

  3. Halten Sie die ALT-TASTE gedrückt, und klicken Sie auf die Schaltfläche, die Sie hinzugefügt haben.

    Sie haben jetzt eine dritte Sammlung mit dem Namen CitiesByCountryFiltered erstellt, die nur Länder mit einem „e“ im Namen enthält, d h. nicht „Spain“ oder „Italy“.

    CitiesByCountryFiltered

  4. Fügen Sie eine weitere Schaltfläche hinzu, und legen Sie deren Text-Eigenschaft so fest, dass die Schaltfläche „Ungroup “ anzeigt.

  5. Legen Sie die Eigenschaft OnSelect der Schaltfläche auf diese Formel fest:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Dies führt zu folgendem Ergebnis:

    Städte nach Land/Region nach Aufheben der Gruppierung

Aggregieren von Ergebnissen

Ein weiterer Vorgang, der bei gruppierten Tabelle durchgeführt werden kann, ist das Kompilieren der Ergebnisse. In diesem Beispiel addieren wir die Einwohnerzahlen der größten Städte/Regionen jedes Landes zusammen.

  1. Fügen Sie eine andere Schaltfläche hinzu, und legen Sie deren Text-Eigenschaft so fest, dass die Schaltfläche „Sum“ anzeigt.

  2. Legen Sie die Eigenschaft OnSelect der Schaltfläche „Sum“ auf diese Formel fest:

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

    Dies führt zu folgendem Ergebnis:

    Städte Summe

    AddColumns beginnt mit der grundlegenden Sammlung CitiesByCountry und fügt eine neue Spalte Sum of City Populations hinzu. Die Werte dieser Spalte werden zeilenweise auf der Basis der Formel Sum ( Cities, Population) berechnet. AddColumns stellt den Wert der Spalte Cities (eine Tabelle) für jede Zeile, und Sum addiert die Zahlen unter Population für jede Zeile dieser untergeordneten Tabelle.

    Wir haben jetzt die gewünschte Summe berechnet und können DropColumns verwenden, um die untergeordneten Tabellen zu entfernen.

  3. Fügen Sie eine andere Schaltfläche hinzu, und legen Sie deren Text-Eigenschaft so fest, dass die Schaltfläche "SumOnly" anzeigt.

  4. Legen Sie die Eigenschaft OnSelect der Schaltfläche "Sum" auf diese Formel fest:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Dies führt zu folgendem Ergebnis:

    Länder Summe

    Beachten Sie, dass wir die Gruppierung dieser Tabelle nicht aufheben mussten.