Funcions GroupBy i Desagrupar
S'aplica a: Aplicacions de llenç Aplicacions basades en models Power Pages
Agrupa i desagrupa els registres d'una taula.
Descripció
La funció GroupBy torna una taula amb els registres agrupats en funció dels valors d'una o més columnes. Els registres del mateix grup es col·loquen en un únic registre, amb una columna afegida que conté una taula imbricada de les columnes restants.
La funció Ungroup reverteix el procés GroupBy. Aquesta funció torna una taula, separant en registres independents tots els registres que s'havien agrupat.
Podeu agrupar els registres mitjançant l'ús de GroupBy, modificar la taula que torna i, a continuació, desagrupar els registres de la taula modificada mitjançant l'ús de Ungroup. Per exemple, podeu suprimir un grup de registres seguint aquest enfocament:
- Utilitzeu la funció GroupBy.
- Utilitzeu la funció Filter per suprimir tot el grup de registres.
- Utilitzeu la funció Ungroup.
També podeu afegir resultats en funció d'una agrupació:
- Utilitzeu la funció GroupBy.
- Utilitzeu la funció AddColumns amb Sum,Average ... i altres funcions agregades per afegir una columna nova, que és un agregat de les taules de grup.
- Utilitzeu la funció DropColumns per suprimir la taula del grup.
Ungroup intenta conservar l'ordre original dels registres que es van enviar a GroupBy. Això no sempre és possible (per exemple, si la taula original conté registres en blanc).
Una taula és un valor del Power Apps, igual que una cadena o un número. Podeu especificar una taula com a argument per una funció i una funció pot retornar una taula. GroupBy i Ungroup no modifiquen una taula; en lloc d'això, prenen una taula com a argument i retornen una taula diferent. Vegeu Treballar amb taules per obtenir més informació.
Nota
Abans Power Apps de la versió 3.24042, els noms de columna s'especificaven amb una cadena de text entre cometes dobles, i si es connectaven a un font de dades també havien de ser noms lògics. Per exemple, es va utilitzar el nom lògic "cr43e_name" amb cometes dobles en lloc del nom de visualització Nom sense cometes. Per a SharePoint les fonts de dades de l'Excel que contenen noms de columna amb espais, cada espai s'ha especificat amb "_x0020_", per exemple "Nom de columna" Column_x0020_Name ". Després d'aquesta versió, totes les aplicacions s'actualitzaven automàticament a la nova sintaxi descrita en aquest article.
Sintaxi
GroupBy(Table,ColumnName1 [, ColumnName2 , ... ],GroupColumnName)
- Taula : obligatòria. Taula que s'agruparà.
- ColumnNames : obligatori. Els noms de columna de Taula pels quals agrupeu els registres. Aquestes columnes es converteixen en columnes a la taula resultant.
- GroupColumnName : obligatori. Nom de columna per a l'emmagatzematge de dades de registre que no formen part de ColumnName.
Desagrupa(Taula,NomColumnaGrup )
- Taula : obligatòria. Taula que es desagruparà.
- GroupColumnName : obligatori. La columna que conté la configuració del registre de dades amb la funció GroupBy.
Exemples
Crear una col·lecció
- Afegiu un botó i definiu la propietat Text per tal que el botó mostri Original.
- Definiu la propietat OnSelect del botó Original a aquesta fórmula:
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}
)
Mentre manteniu premuda la tecla Alt, seleccioneu el botó Original.
Acabeu de crear una col·lecció, anomenada CityPopulations, que conté aquestes dades:
Per visualitzar aquesta col·lecció, seleccioneu Col·leccions al menú Fitxer i, a continuació, seleccioneu la col·lecció CityPopulations. Apareixen els primers cinc registres de la col·lecció:
Agrupar registres
Afegiu un altre botó i definiu-ne la propietat Text a aquesta "Agrupa".
Definiu la propietat OnSelect d'aquest botó a aquesta fórmula:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )
Mentre manteniu premuda la tecla Alt, seleccioneu el botó Agrupa.
Acabeu de crear una col·lecció, anomenada CitiesByCountry, en què els registres de la col·lecció anterior s'agrupen per la columna País.
Per visualitzar els primers cinc registres d'aquesta col·lecció, seleccioneu Col·leccions al menú Fitxer.
Per mostrar la població de les ciutats d'un país o regió, seleccioneu la icona de taula a la columna Ciutats d'aquest país o regió (per exemple, Alemanya):
Filtrar i desagrupar registres
Afegiu un altre botó i definiu la propietat Text per tal que el botó mostri Filtra.
Definiu la propietat OnSelect d'aquest botó a aquesta fórmula:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" al país ) )
Mentre manteniu premuda la tecla Alt, seleccioneu el botó que heu afegit.
Acabeu de crear una tercera col·lecció, anomenada CitiesByCountryFiltered, que només inclou els països que tenen una "e" en els seus noms (és a dir, ni França ni Itàlia).
Afegiu un botó més i definiu la propietat Text per tal que el botó mostri "Desagrupa".
Definiu la propietat OnSelect d'aquest botó a aquesta fórmula:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities )
Que resulta en:
Resultats agregats
Una altra operació que podem realitzar en una taula agrupada és compilar els resultats. En aquest exemple, sumarem la població de les principals ciutats de cada país o regió.
Afegiu un altre botó i definiu la propietat Text per tal que el botó mostri Suma.
Definiu la propietat OnSelect del botó "Suma" a aquesta fórmula:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Suma de poblacions de ciutats', Sum( Ciutats, Població ) ) )
Que resulta en:
AddColumns comença amb la col·lecció base CitiesByCountry i afegeix una nova columna Sum of City Populations. Els valors d'aquesta columna es calculen fila per fila, segons la fórmula Sum( Ciutats, Població ). AddColumns proporciona el valor de la columna Cities (una taula) per a cada fila, i Sum suma la població per a cada fila d'aquesta subtaula.
Ara que tenim la suma que volem, podem utilitzar DropColumns per suprimir les subtaules.
Afegiu un altre botó i definiu la propietat Text per tal que el botó mostri Només suma.
Definiu la propietat OnSelect del botó "Només suma" a aquesta fórmula:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )
Que resulta en:
Heu de tenir en compte que no hem hagut de desagrupar aquesta taula.