Funcións GroupBy e Desagrupar en Power Apps

Rexistros de grupos e desagrupacións dunha táboa.

Descripción

A función GrupoBy devolve unha táboa cos rexistros agrupados en función dos valores dunha ou máis columnas. Os rexistros do mesmo grupo colócanse nun único rexistro, engadindo unha columna que contén unha táboa aniñada das columnas restantes.

A función Desagrupar inverte o proceso GrupoBy. Esta función devolve unha táboa, dividindo en rexistros separados todos os rexistros agrupados.

Pode agrupar rexistros usando GrupoBy , modificar a táboa que devolve e, a continuación, desagrupar os rexistros da táboa modificada mediante Desagrupar. Por exemplo, pode eliminar un grupo de rexistros seguindo este enfoque:

  • Use a función GrupoBy.
  • Use a función Filter para eliminar todo o grupo de rexistros.
  • Use a función Desagrupar.

Tamén pode agregar resultados en función dunha agrupación:

  • Use a función GrupoBy.
  • Use a función AddColumns coas funcións Sum , Average e outras funcións agregadas para engadir unha nova columna que é un agregado das táboas de grupos.
  • Use a función DropColumns función para soltar a táboa de grupos.

Desagrupar tenta conservar a orde orixinal dos rexistros dos que se enviaron a GrupoBy. Isto non sempre é posible (por exemplo, se a táboa orixinal contén rexistros en branco ).

Unha táboa é un valor en Power Apps, ao igual que unha cadea ou un número. Pode especificar unha táboa como argumento para unha función e as funcións poden devolver unha táboa. GroupBy e Desagrupar non modifican unha táboa; no seu lugar toman unha táboa como argumento e devolven unha táboa diferente. Para obter máis detalles, consulte Traballar con táboas.

Sintaxe

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

  • Table : Obrigatorio. Táboa a agrupar.

  • ColumnName(s) : Obrigatorio. Os nomes de columnas de Táboa mediante os que agrupar rexistros. Estas columnas convértense en columnas da táboa resultante.

  • GroupColumnName - Obrigatorio. O nome da columna para o almacenamento de datos de rexistros que non se atopan en ColumnName(s).

    Nota

    Para SharePoint e orixes de datos de Excel que conteñen nomes de columna con espazos, especifique cada espazo como "_x0020_". Por exemplo, especifique o "Column Name" como "Column_x0020_Name".

Ungroup ( Table , GroupColumnName )

  • Table : Obrigatorio. Táboa a desagrupar.

  • GroupColumnName - Obrigatorio. A columna que contén a configuración de datos do rexistro coa función GrupoBy.

    Nota

    Para SharePoint e orixes de datos de Excel que conteñen nomes de columna con espazos, especifique cada espazo como "_x0020_". Por exemplo, especifique o "Column Name" como "Column_x0020_Name".

Exemplos

Crear unha colección

  1. Engada un botón e configure a súa propiedade Text para que o botón mostre Orixinal.
  2. Axuste a propiedade OnSelect do botón Orixinal nesta 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}
)
  1. Seleccione o botón Orixinal mantendo premida a tecla Alt.

    Acaba de crear unha colección chamada CityPopulations que contén estes datos:

  2. Para ver esta colección, seleccione Coleccións no menú Ficheiro e logo seleccione a colección CityPopulations. Aparecerán os cinco primeiros rexistros da colección:

Rexistros de grupos

  1. Engada outro botón e axuste a súa propiedade Text en "Grupo".

  2. Axuste a propiedade OnSelect deste botón nesta fórmula:

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

  3. Seleccione o botón Agrupar mantendo premida a tecla Alt.

    Acaba de crear unha colección, chamada CitiesByCountry , na que os rexistros da colección anterior están agrupados por columna de País.

  4. Para ver os primeiros cinco rexistros desta colección, seleccione Coleccións no menú Ficheiro.

  5. Para amosar as poboacións das cidades dun país, seleccione a icona da táboa na columna Cidades para ese país (por exemplo, Alemaña):

Filtrar e desagrupar rexistros

  1. Engada outro botón e configure a súa propiedade Text para que o botón mostre "Filtro".

  2. Axuste a propiedade OnSelect deste botón nesta fórmula:

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

  3. Seleccione o botón que engadiu mantendo premida a tecla Alt.

    Acaba de crear unha terceira colección, chamada CitiesByCountryFiltered , que inclúe só aqueles países que teñen unha "e" nos seus nomes (é dicir, non inclúe Francia nin Italia).

  4. Engada un botón máis e configure a súa propiedade Text para que o botón mostre "Desagrupar".

  5. Axuste a propiedade OnSelect deste botón nesta fórmula:

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

    Que dá como resultado:

Resultados agregados

Outra cousa que podemos facer cunha táboa agrupada é agrupar os resultados. Neste exemplo, sumaremos a poboación das principais cidades de cada país.

  1. Engada outro botón e configure a súa propiedade Text para que o botón mostre "Sumar".

  2. Axuste a propiedade OnSelect do botón "Sumar" nesta fórmula:

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

    Que dá como resultado:

    AddColumns comeza coa colección CidadesByCountry base e engade unha nova columna de Suma das poboacións de cidade. Os valores desta columna calcúlanse fila por fila, en función da fórmula Sum( Cities, Population ). AddColumns fornece o valor da columna Cidades (unha táboa) para cada fila e Sum engade a Poboación para cada fila desta táboa secundaria.

    Agora que temos a suma que queremos, podemos usar DropColumns para eliminar as táboas secundarias.

  3. Engada outro botón e configure a súa propiedade Text para que o botón mostre "SumOnly".

  4. Axuste a propiedade OnSelect do botón "SumOnly" nesta fórmula:

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

    Que dá como resultado:

    Teña en conta que non tivemos que desagrupar esta táboa.