Funktionerna GroupBy och Ungroup i PowerAppsGroupBy and Ungroup functions in PowerApps

Grupperar och delar upp poster i en tabell.Groups and ungroups records of a table.

BeskrivningDescription

Funktionen GroupBy returnerar en tabell med poster som grupperas tillsammans, baserat på värdena i en eller flera kolumner.The GroupBy function returns a table with records grouped together based on the values in one or more columns. Poster i samma grupp placeras i en enda post, där en kolumn som innehåller en kapslad tabell med övriga kolumner läggs till.Records in the same group are placed into a single record, with a column added that holds a nested table of the remaining columns.

Funktionen Ungroup reverserar processen GroupBy.The Ungroup function reverses the GroupBy process. Den här funktionen returnerar en tabell och delar upp alla poster som har grupperats i separata poster.This function returns a table, breaking into separate records any records that were grouped together.

Du kan gruppera poster med hjälp av GroupBy, ändra tabellen som den returnerar och sedan dela upp posterna i den ändrade tabellen med hjälp av Ungroup.You can group records by using GroupBy, modify the table that it returns, and then ungroup records in the modified table by using Ungroup. Du kan till exempel ta bort en grupp poster genom att följa den här metoden:For example, you can remove a group of records by following this approach:

  • Använd funktionen GroupBy.Use the GroupBy function.
  • Använd funktionen Filter för att ta bort hela gruppen med poster.Use the Filter function to remove the entire group of records.
  • Använd funktionen Ungroup.Use the Ungroup function.

Du kan också aggregera resultat baserat på en gruppering:You can also aggregate results based on a grouping:

  • Använd funktionen GroupBy.Use the GroupBy function.
  • Använd funktionen AddColumns med Sum , Average och andra mängdfunktioner för att lägga till en ny kolumn som är en mängd av grupptabellerna.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Använd funktionen DropColumns för att ta bort grupptabellen.Use the DropColumns function to drop the group table.

Ungroup försöker bevara den ursprungliga ordningen för de poster som har skickas till GroupBy.Ungroup tries to preserve the original order of the records that were fed to GroupBy. Detta är inte alltid möjligt (till exempel om den ursprungliga tabellen innehåller tomma poster).This isn't always possible (for example, if the original table contains blank records).

En tabell är ett värde i PowerApps, precis som en sträng eller ett tal.A table is a value in PowerApps, just like a string or a number. Du kan ange en tabell som ett argument för en funktion och en funktion kan returnera en tabell.You can specify a table as an argument for a function, and a function can return a table. GroupBy och Ungroup ändrar inte en tabell, utan använder i stället tabellen som ett argument och returnerar en annan tabell.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. Mer information finns i Arbeta med tabeller.See working with tables for more details.

SyntaxSyntax

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

  • Table – obligatoriskt.Table - Required. Tabell som ska grupperas.Table to be grouped.

  • ColumnName(s) – obligatoriskt.ColumnName(s) - Required. Kolumnnamnen i Table som du vill gruppera posterna efter.The column names in Table by which to group records. Dessa kolumner blir kolumner i den resulterande tabellen.These columns become columns in the resulting table.

  • GroupColumnName – Krävs.GroupColumnName - Required. Kolumnnamnet för lagring av postdata som inte finns i ColumnName(s) .The column name for the storage of record data not in the ColumnName(s).

    Anteckning

    För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg, anges varje utrymme som ”_x0020_” .For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ange till exempel "Kolumnens namn" som "Kolumnens_x0020_namn" .For example, specify "Column Name" as "Column_x0020_Name".

Ungroup( Table; GroupColumnName )Ungroup( Table; GroupColumnName )

  • Table – obligatoriskt.Table - Required. Tabell som ska delas upp.Table to be ungrouped.

  • GroupColumnName – Krävs.GroupColumnName - Required. Den kolumn som innehåller inställningar av postdata med funktionen GroupBy.The column that contains the record data setup with the GroupBy function.

    Anteckning

    För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg, anges varje utrymme som ”_x0020_” .For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ange till exempel "Kolumnens namn" som "Kolumnens_x0020_namn" .For example, specify "Column Name" as "Column_x0020_Name".

ExempelExamples

Skapa en samlingCreate a collection

  1. Lägg till en knapp och ange egenskapen Text så att knappen visar Original.Add a button, and set its Text property so that the button shows Original.
  2. Ange egenskapen OnSelect för knappen Original till den här formeln:Set the OnSelect property of the Original button to this formula:
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. Håll ned Alt-tangenten och välj knappen Original.While holding down the Alt key, select the Original button.

    Du har nu skapat en samling med namnet CityPopulations, som innehåller följande data:You just created a collection, named CityPopulations, that contains this data:

  2. Om du vill visa den här samlingen väljer du Samlingar i menyn Arkiv och sedan samlingen CityPopulations.To display this collection, select Collections on the File menu and then select the CityPopulations collection. De första fem posterna i samlingen visas:The first five records in the collection appear:

Gruppera posterGroup records

  1. Lägg till en ny knapp och ange egenskapen Text till "Group" .Add another button, and set its Text property to "Group".

  2. Ange egenskapen OnSelect för knappen till den här formeln:Set the OnSelect property of this button to this formula:

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

  3. Håll ned Alt-tangenten och välj knappen Grupp.While holding down the Alt key, select the Group button.

    Du har nu skapat en samling med namnet CitiesByCountry, där posterna i den tidigare samlingen grupperas efter kolumnen Country.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  4. Om du vill visa de första fem posterna i den här samlingen väljer du Samlingar i menyn Arkiv.To display the first five records in this collection, select Collections on the File menu.

  5. Om du vill visa stadsbefolkningen i ett land, väljer du tabellikonen i kolumnen Cities för det landet (exempelvis Tyskland):To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Filtrera och dela upp posterFilter and ungroup records

  1. Lägg till en ny knapp och ange egenskapen Text så att knappen visar "Filter" .Add another button, and set its Text property so that the button shows "Filter".

  2. Ange egenskapen OnSelect för knappen till den här formeln:Set the OnSelect property of this button to this formula:

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

  3. Håll ned Alt-tangenten och välj den knapp som du lade till.While holding down the Alt key, select the button that you added.

    Du har nu skapat en tredje samling med namnet CitiesByCountryFiltered, som innehåller de länder som har ett ”e” i sina namn (dvs. inte Spain eller Italy).You just created a third collection, named CitiesByCountryFiltered, that includes only those countries that have an "e" in their names (that is, not Spain or Italy).

  4. Lägg till en ny knapp och ange egenskapen Text så att knappen visar "Ungroup" .Add one more button, and set its Text property so that the button shows "Ungroup".

  5. Ange egenskapen OnSelect för knappen till den här formeln:Set the OnSelect property of this button to this formula:

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

    Vilket resulterar i:Which results in:

MängdresultatAggregate results

En annan sak vi kan göra med en grupperad tabell är att skapa mängdresultat.Something else we can do with a grouped table is to aggregate the results. I det här exemplet ska vi summera befolkningen i större städer i varje land.In this example, we will sum the population of the major cities in each country.

  1. Lägg till en ny knapp och ange egenskapen Text så att knappen visar "Sum" .Add another button, and set its Text property so that the button shows "Sum".

  2. Ange egenskapen OnSelect för knappen "Sum" till den här formeln:Set the OnSelect property of the "Sum" button to this formula:

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

    Vilket resulterar i:Which results in:

    AddColumns startar med bassamlingen CitiesByCountry och lägger till den nya kolumnen Sum of City Populations.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. Kolumnvärdena är beräknade rad för rad, baserat på formeln Sum( Cities; Population ) .This column's values are calculated row-by-row, based on the formula Sum( Cities; Population ). AddColumns ger värdet för kolumnen Cities (en tabell) för varje rad och Sum summerar Population för varje rad i den underordnade tabellen.AddColumns provides the value of the Cities column (a table) for each row, and Sum adds up the Population for each row of this sub table.

    Nu har vi summan som vi ville ha och vi kan använda DropColumns till att ta bort de underordnade tabellerna.Now that we have the sum that we want, we can use DropColumns to remove the sub tables.

  3. Lägg till en ny knapp och ange egenskapen Text så att knappen visar "SumOnly" .Add another button, and set its Text property so that the button shows "SumOnly".

  4. Ange egenskapen OnSelect för knappen "SumOnly" till den här formeln:Set the OnSelect property of the "SumOnly" button to this formula:

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

    Vilket resulterar i:Which results in:

    Observera att vi inte behövde dela upp den här tabellen.Note that we didn't need to ungroup this table.