Funzioni GroupBy e Ungroup

Si applica a: App canvas App basate su modello

Raggruppano e separano record di una tabella.

Description

La funzione GroupBy restituisce una tabella con record raggruppati insieme in base ai valori di una o più colonne. I record dello stesso gruppo vengono inseriti in un singolo record, con una colonna aggiunta che contiene una tabella annidata delle colonne rimanenti.

La funzione Ungroup inverte il processo della funzione GroupBy. Questa funzione restituisce una tabella, suddividendo tutti i record che erano stati raggruppati in record separati.

È possibile raggruppare record tramite GroupBy, modificare la tabella restituita e quindi separare i record nella tabella modificata tramite Ungroup. Ad esempio, è possibile rimuovere un gruppo di record seguendo questo approccio:

  • Usare la funzione GroupBy.
  • Usare la funzione Filter per rimuovere l'intero gruppo di record.
  • Usare la funzione Ungroup.

È anche possibile aggregare i risultati in base a un raggruppamento:

  • Usare la funzione GroupBy.
  • 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.
  • Usare la funzione DropColumns per eliminare la tabella del gruppo.

La funzione Ungroup prova a mantenere l'ordine originale dei record che erano stati inviati alla funzione GroupBy. Questo non è sempre possibile (ad esempio, se la tabella originale contiene record blank).

Una tabella è un valore in Power Apps, così come una stringa o un numero. È possibile specificare una tabella come argomento per una funzione e una funzione può restituire una tabella. Le funzioni GroupBy e Ungroup non modificano una tabella, ma accettano una tabella come argomento e restituiscono una nuova tabella. Per altre informazioni, vedi Utilizzo delle tabelle.

Sintassi

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

  • Table: obbligatorio. Tabella da raggruppare.

  • ColumnName(s): obbligatorio. I nomi di colonna nella tabella in base a cui raggruppare i record. Queste colonne diventano colonne nella tabella risultante.

  • GroupColumnName: obbligatorio. Il nome della colonna per l'archiviazione dei dati del record non in ColumnName(s).

    Nota

    Per origini dati SharePoint ed Excel che contengono nomi di colonna con spazi, specifica ogni spazio come "_x0020_". Ad esempio, specifica "Nome colonna" come "Column_x0020_Name".

Ungroup( Table, GroupColumnName )

  • Table: obbligatorio. Tabella da separare.

  • GroupColumnName: obbligatorio. La colonna che contiene i dati del record impostati con la funzione GroupBy.

    Nota

    Per origini dati SharePoint ed Excel che contengono nomi di colonna con spazi, specifica ogni spazio come "_x0020_". Ad esempio, specifica "Nome colonna" come "Column_x0020_Name".

Esempi

Creare una raccolta

  1. Aggiungere un pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi Original.
  2. Impostare la proprietà OnSelect del pulsante Original su questa 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. Selezionare il pulsante Original tenendo premuto ALT.

    È stata appena creata una raccolta, denominata CityPopulations, che contiene i dati seguenti:

    Esempio CityPopulations.

  2. Per visualizzare questa raccolta, selezionare Raccolte nel menu File e quindi selezionare la raccolta CityPopulations. Vengono visualizzati i primi cinque record della raccolta:

    Raccolta CityPopulations.

Raggruppare record

  1. Aggiungere un altro pulsante e impostare la relativa proprietà Text su "Group".

  2. Impostare la proprietà OnSelect del pulsante su questa formula:

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

  3. Selezionare il pulsante Group tenendo premuto ALT.

    È stata appena creata una raccolta, denominata CitiesByCountry, in cui vengono raggruppati i record della raccolta precedente in base alla colonna Country.

    Città raggruppate.

  4. Per visualizzare i primi cinque record di questa raccolta, selezionare Raccolte nel menu File.

    Città per paese/area geografica.

  5. Per visualizzare la popolazione delle città in un paese/regione, seleziona l'icona della tabella nella colonna Città per tale paese/area geografica (ad esempio, Germania):

    Popolazione - Germania.

Filtrare e separare i record

  1. Aggiungere un altro pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Filter".

  2. Impostare la proprietà OnSelect del pulsante su questa formula:

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

  3. Selezionare il pulsante aggiunto tenendo premuto ALT.

    È 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).

    CitiesByCountryFiltered.

  4. Aggiungere un altro pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Ungroup".

  5. Impostare la proprietà OnSelect del pulsante su questa formula:

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

    Verrà restituita la tabella seguente:

    Città per paese/area geografica dopo la separazione.

Aggregare i risultati

Un'altra operazione che è possibile eseguire con una tabella raggruppata è aggregare i risultati. In questo esempio verrà eseguita la somma della popolazione delle città più importanti di ogni paese/area geografica.

  1. Aggiungere un pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "Sum".

  2. Impostare la proprietà OnSelect del pulsante "Sum" su questa formula:

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

    Verrà restituita la tabella seguente:

    Somma delle città.

    La funzione AddColumns inizia con la raccolta di base CitiesByCountry e aggiunge una nuova colonna denominata Sum of City Populations. I valori della colonna sono calcolati riga per riga, in base alla 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.

    Dopo aver ottenuto la somma, è possibile usare la funzione DropColumns per rimuovere le sottotabelle.

  3. Aggiungere un altro pulsante e impostare la relativa proprietà Text in modo che il pulsante visualizzi "SumOnly".

  4. Impostare la proprietà OnSelect del pulsante "SumOnly" su questa formula:

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

    Verrà restituita la tabella seguente:

    Somma dei paesi.

    Si noti che non è stato necessario separare questa tabella.