Raggruppano e separano record di un tabella.

Descrizione

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 PowerApps, 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, vedere Working with tables (Utilizzo delle tabelle).

Sintassi

GroupBy( Tabella, NomeColonna1 [, NomeColonna2, ... ], NomeColonnaGruppo )

  • 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.
  • NomeColonnaGruppo: obbligatorio. Il nome della colonna per l'archiviazione dei dati del record non in NomiColonna.

    Nota: per origini dati SharePoint ed Excel che contengono nomi di colonna con spazi, specificare ogni spazio come "_x0020_". Ad esempio, specificare "Nome colonna" come "Column_x0020_Name".

Ungroup( Tabella, NomeColonnaGruppo )

  • Table - Obbligatorio. Tabella da separare.
  • NomeColonnaGruppo: 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, specificare ogni spazio come "_x0020_". Ad esempio, specificare "Nome colonna" come "Column_x0020_Name".

Esempi

Creare una raccolta

  1. Aggiungere un pulsante e impostare la sua proprietà Text in modo che il pulsante visualizzi Original.

  2. Impostare la proprietà OnSelect del pulsante Original con 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})

  3. Premere F5, selezionare il pulsante Original e quindi premere ESC.

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

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

Raggruppare record

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

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

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

  3. Premere F5, selezionare il pulsante Group e quindi premere ESC.

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

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

  5. Per visualizzare la popolazione delle città in un paese, selezionare l'icona della tabella nella colonna Cities per tale paese (ad esempio, Germany):

Applicare un filtro 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 con questa formula:

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

  3. Premere F5, selezionare il pulsante aggiunto e quindi premere 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).

  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 con questa formula:

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

    Verrà restituita la tabella seguente:

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.

  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" con questa formula:

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

    Verrà restituita la tabella seguente:

    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.

  3. Dopo aver ottenuto la somma, è possibile usare la funzione DropColumns per rimuovere le sottotabelle. Modificare la proprietà OnSelect per usare la formula seguente:

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

    Verrà restituita la tabella seguente:

    Si noti che non è stato necessario separare questa tabella.