Condividi tramite


Funzioni GroupBy e Ungroup

Si applica a: App Canvas App basate su modello Power Pages

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.
  • Usa 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.

Ungroup tenta di preservare l'ordine originale dei record inseriti in 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. GroupBy e Ungroup non modificano una tabella; invece prendono una tabella come argomento e restituiscono una tabella diversa. Per altre informazioni, vedi Utilizzo delle tabelle.

Nota

Nelle Power Apps precedenti alla versione 3.24042, i nomi delle colonne erano specificati con una stringa di testo utilizzando virgolette doppie e se collegati a un origine dati dovevano anche essere nomi logici. Ad esempio, è stato utilizzato il nome logico "cr43e_name" con virgolette doppie al posto di nome visualizzato Nome senza virgolette. Per SharePoint e le origini dati Excel che contengono nomi di colonne con spazi, ogni spazio è stato specificato con "_x0020_", ad esempio "Nome colonna" come "Nome_colonna_x0020". Dopo questa versione, tutte le app sono state aggiornate automaticamente alla nuova sintassi descritta in questo articolo.

Sintassi

Raggruppa per( Tabella, NomeColonna1 [, NomeColonna2 , ... ], NomeColonnaGruppo )

  • Tabella - Obbligatorio. Tabella da raggruppare.
  • ColumnNames - 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).

Separa( Tabella, NomeColonnaGruppo )

  • Tabella - Obbligatorio. Tabella da separare.
  • GroupColumnName - Obbligatorio. La colonna che contiene i dati del record impostati con la funzione GroupBy.

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(CittàPerPaese, GroupBy(PopolazioniCittà, Paese, Città) )

  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(CittàPerPaeseFiltrato, Filtro(CittàPerPaese, "e" in Paese))

  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 possiamo eseguire con una tabella raggruppata è compilare i risultati. In questo esempio verrà eseguita la somma della popolazione delle città più importanti di ogni paese o 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, 'Somma delle popolazioni cittadine', Sum( Cities, Population ) ) )

    Verrà restituita la tabella seguente:

    Somma delle città.

    AddColumns inizia con la raccolta base CitiesByCountry e aggiunge una nuova colonna Somma delle popolazioni cittadine. I valori della colonna sono calcolati riga per riga, in base alla formula Sum( Cities, Population ). AddColumns fornisce il valore della colonna Cities (una tabella) per ogni riga e Sum somma la Population per ogni riga di questa 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( SommaPopolazioniCittàSolo, DropColumns( SommaPopolazioniCittà, Città ) )

    Verrà restituita la tabella seguente:

    Somma dei paesi.

    Si noti che non è stato necessario separare questa tabella.