Funzioni GroupBy e Ungroup in PowerAppsGroupBy and Ungroup functions in PowerApps

Raggruppano e separano record di un tabella.Groups and ungroups records of a table.

DescrizioneDescription

La funzione GroupBy restituisce una tabella con record raggruppati insieme in base ai valori di una o più colonne.The GroupBy function returns a table with records grouped together based on the values in one or more columns. I record dello stesso gruppo vengono inseriti in un singolo record, con una colonna aggiunta che contiene una tabella annidata delle colonne rimanenti.Records in the same group are placed into a single record, with a column added that holds a nested table of the remaining columns.

La funzione Ungroup inverte il processo della funzione GroupBy.The Ungroup function reverses the GroupBy process. Questa funzione restituisce una tabella, suddividendo tutti i record che erano stati raggruppati in record separati.This function returns a table, breaking into separate records any records that were grouped together.

È possibile raggruppare record tramite GroupBy, modificare la tabella restituita e quindi separare i record nella tabella modificata tramite 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. Ad esempio, è possibile rimuovere un gruppo di record seguendo questo approccio:For example, you can remove a group of records by following this approach:

  • Usare la funzione GroupBy.Use the GroupBy function.
  • Usare la funzione Filter per rimuovere l'intero gruppo di record.Use the Filter function to remove the entire group of records.
  • Usare la funzione Ungroup.Use the Ungroup function.

È anche possibile aggregare i risultati in base a un raggruppamento:You can also aggregate results based on a grouping:

  • Usare la funzione GroupBy.Use the GroupBy function.
  • Usare la funzione AddColumns con Sum, Average e altre funzioni di aggregazione per aggiungere una nuova colonna che rappresenta un'aggregazione delle tabelle del gruppo.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Usare la funzione DropColumns per eliminare la tabella del gruppo.Use the DropColumns function to drop the group table.

La funzione Ungroup prova a mantenere l'ordine originale dei record che erano stati inviati alla funzione GroupBy.Ungroup tries to preserve the original order of the records that were fed to GroupBy. Questo non è sempre possibile (ad esempio, se la tabella originale contiene record blank).This isn't always possible (for example, if the original table contains blank records).

Una tabella è un valore in PowerApps, così come una stringa o un numero.A table is a value in PowerApps, just like a string or a number. È possibile specificare una tabella come argomento per una funzione e una funzione può restituire una tabella.You can specify a table as an argument for a function, and a function can return a table. Le funzioni GroupBy e Ungroup non modificano una tabella, ma accettano una tabella come argomento e restituiscono una nuova tabella.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. Per altre informazioni, vedere Working with tables (Utilizzo delle tabelle).See working with tables for more details.

SintassiSyntax

GroupBy( Tabella, NomeColonna1 [, NomeColonna2, ... ], NomeColonnaGruppo )GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table - Obbligatorio.Table - Required. Tabella da raggruppare.Table to be grouped.
  • ColumnName(s) - Obbligatorio.ColumnName(s) - Required. I nomi di colonna nella tabella in base a cui raggruppare i record.The column names in Table by which to group records. Queste colonne diventano colonne nella tabella risultante.These columns become columns in the resulting table.
  • NomeColonnaGruppo: obbligatorio.GroupColumnName - Required. Il nome della colonna per l'archiviazione dei dati del record non in NomiColonna.The column name for the storage of record data not in the ColumnName(s).

    Nota

    Per origini dati SharePoint ed Excel che contengono nomi di colonna con spazi, specificare ogni spazio come "_x0020_".For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ad esempio, specificare "Nome colonna" come "Column_x0020_Name".For example, specify "Column Name" as "Column_x0020_Name".

Ungroup( Tabella, NomeColonnaGruppo )Ungroup( Table, GroupColumnName )

  • Table - Obbligatorio.Table - Required. Tabella da separare.Table to be ungrouped.
  • NomeColonnaGruppo: obbligatorio.GroupColumnName - Required. La colonna che contiene i dati del record impostati con la funzione GroupBy.The column that contains the record data setup with the GroupBy function.

    Nota

    Per origini dati SharePoint ed Excel che contengono nomi di colonna con spazi, specificare ogni spazio come "_x0020_".For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ad esempio, specificare "Nome colonna" come "Column_x0020_Name".For example, specify "Column Name" as "Column_x0020_Name".

EsempiExamples

Creare una raccoltaCreate a collection

  1. Aggiungere un pulsante e impostare la sua proprietà Text in modo che il pulsante visualizzi Original.Add a button, and set its Text property so that the button shows Original.
  2. Impostare la proprietà OnSelect del pulsante Original con questa formula: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})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})

  3. Premere F5, selezionare il pulsante Original e quindi premere ESC.Press F5, select the Original button, and then press Esc.

    È stata appena creata una raccolta, denominata CityPopulations, che contiene i dati seguenti:You just created a collection, named CityPopulations, that contains this data:

  4. Per visualizzare questa raccolta, selezionare Raccolte nel menu File e quindi selezionare la raccolta CityPopulations.To display this collection, select Collections on the File menu and then select the CityPopulations collection. Vengono visualizzati i primi cinque record della raccolta:The first five records in the collection appear:

Raggruppare recordGroup records

  1. Aggiungere un altro pulsante e impostarne la relativa proprietà Text su "Group".Add another button, and set its Text property to "Group".
  2. Impostare la proprietà OnSelect del pulsante con questa formula:Set the OnSelect property of this button to this formula:

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

  3. Premere F5, selezionare il pulsante Group e quindi premere ESC.Press F5, select the Group button, and then press Esc.

    È stata appena creata una raccolta, denominata CitiesByCountry, in cui vengono raggruppati i record della raccolta precedente in base alla colonna Country.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  4. Per visualizzare i primi cinque record di questa raccolta, selezionare Raccolte nel menu File.To display the first five records in this collection, select Collections on the File menu.

  5. Per visualizzare la popolazione delle città in un paese, selezionare l'icona della tabella nella colonna Cities per tale paese (ad esempio, Germany):To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Applicare un filtro e separare i recordFilter and ungroup records

  1. Aggiungere un altro pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Filter".Add another button, and set its Text property so that the button shows "Filter".
  2. Impostare la proprietà OnSelect del pulsante con questa formula: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. Premere F5, selezionare il pulsante aggiunto e quindi premere ESC.Press F5, select the button that you added, and then press Esc.

    È stata appena creata un terza raccolta, denominata CitiesByCountryFiltered, che include solo i paesi che hanno una "e" nei nomi (quindi Spagna o Italia non saranno incluse).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. Aggiungere un altro pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Ungroup".Add one more button, and set its Text property so that the button shows "Ungroup".
  5. Impostare la proprietà OnSelect del pulsante con questa formula:Set the OnSelect property of this button to this formula:

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

    Verrà restituita la tabella seguente:Which results in:

Aggregare i risultatiAggregate results

Un'altra operazione che è possibile eseguire con una tabella raggruppata è aggregare i risultati.Something else we can do with a grouped table is to aggregate the results. In questo esempio verrà eseguita la somma della popolazione delle città più importanti di ogni paese.In this example, we will sum the population of the major cities in each country.

  1. Aggiungere un pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Sum".Add another button, and set its Text property so that the button shows "Sum".
  2. Impostare la proprietà OnSelect del pulsante "Sum" con questa formula: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 ) ) )

    Verrà restituita la tabella seguente:Which results in:

    La funzione AddColumns inizia con la raccolta di base CitiesByCountry e aggiunge una nuova colonna denominata Sum of City Populations.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. I valori della colonna sono calcolati riga per riga, in base alla formula Sum( Cities, Population ).This column's values are calculated row-by-row, based on the formula Sum( Cities, Population ). La funzione AddColumns specifica il valore della colonna Cities (una tabella) per ogni riga e la funzione Sum somma i valori di Population per ogni riga della sottotabella.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.

  3. Dopo aver ottenuto la somma, è possibile usare la funzione DropColumns per rimuovere le sottotabelle.Now that we have the sum that we want, we can use DropColumns to remove the sub tables. Modificare la proprietà OnSelect per usare la formula seguente:Modify the OnSelect property to use this formula:

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

    Verrà restituita la tabella seguente:Which results in:

    Si noti che non è stato necessario separare questa tabella.Note that we did not need to ungroup this table.