Partilhar via


GroupBy e Ungroup funções

Função Aplica-se a
GroupBy Aplicações de Canvas Aplicações orientadas por modelos Power Pages
Ungroup Aplicativos de tela Aplicativos orientados por modelos

Agrupa e desagrupa os registos de uma tabela.

Descrição

A GroupBy função retorna uma tabela com registros agrupados com base nos valores em uma ou mais colunas. Os registos no mesmo grupo são colocados num único registo, com uma coluna adicionada que contém uma tabela aninhada das restantes colunas.

A Ungroup função inverte o GroupBy processo. Esta função devolve uma tabela, que divide em diferentes registos os que foram agrupados em conjunto.

Você pode agrupar registros usando GroupBy, modificar a tabela que ela retorna e, em seguida, desagrupar registros na tabela modificada usando Ungroup. Por exemplo, pode remover um grupo de registos com abordagem:

  • Use a GroupBy função.
  • Utilize a função Filter para remover o grupo de registos por completo.
  • Use a Ungroup função.

Também pode agregar os resultados com base num agrupamento:

  • Use a GroupBy função.
  • Utilize a função AddColumns com Sum, Average e outras funções de agregação para adicionar uma nova coluna, que é uma agregação das tabelas de grupo.
  • Utilize a função DropColumns para largar a tabela de grupos.

Ungroup tenta preservar a ordem original dos registros que foram alimentados para GroupBy. Esta operação não é sempre possível (por exemplo, se a tabela original tiver registos blank).

Uma tabela é um valor no Power Apps, tal como uma cadeia ou um número. Pode especificar uma tabela como um argumento para uma função e uma função pode devolver uma tabela. GroupBy E Ungroup não modifique uma tabela, em vez disso, eles tomam uma tabela como argumento e retornam uma tabela diferente. Consulte trabalhar com tabelas para obter mais detalhes.

Nota

Antes da versão 3.24042 do Power Apps, os nomes das colunas eram especificados com uma cadeia de texto com aspas duplas e, se estivessem ligados a uma origem de dados também precisavam de ser nomes lógicos. Por exemplo, foi utilizado o nome lógico "cr43e_name" com aspas em vez do nome a apresentar Nome sem aspas. Para as origens de dados do SharePoint e do Excel que contêm nomes de colunas com espaços, cada espaço foi especificado com "_x0020_", por exemplo, "Nome da Coluna" como "Column_x0020_Name". Após esta versão, todas as aplicações foram atualizadas automaticamente para a nova sintaxe descrita neste artigo.

Sintaxe

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

  • Tabela - Obrigatório. Tabela a agrupar.
  • ColumnNames - Obrigatório. Os nomes das colunas na Tabela através da qual os registos são agrupados. Estas colunas tornam-se colunas na tabela resultante.
  • GroupColumnName - Obrigatório. O nome da coluna para o armazenamento de dados do registo que não estão em ColumnName(s).

Ungroup( Tabela, GroupColumnName )

  • Tabela - Obrigatório. Tabela a desagrupar.
  • GroupColumnName - Obrigatório. A coluna que contém a configuração de dados de registro com a GroupBy função.

Exemplos

Criar uma coleção

  1. Adicione um botão e defina a respetiva propriedade Text para que o botão mostre Original.
  2. Defina a propriedade OnSelect do botão Original para esta 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. Mantenha a tecla Alt premida e selecione o botão Original.

    Criou uma coleção, denominada CityPopulations, que contém estes dados:

    Exemplo CityPopulations.

  2. Para visualizar esta coleção, selecione Coleções no menu Ficheiro e, em seguida, selecione a coleção CityPopulations. São apresentados os cinco primeiros registos na coleção:

    Coleção CityPopulations.

Agrupar registos

  1. Adicione outro botão e defina a respetiva propriedade Text como "Grupo".

  2. Defina a propriedade OnSelect deste botão para esta fórmula:

    ClearCollect( CidadesPorPaís, GroupBy( CidadesPopulações, País, Cidades )

  3. Mantenha a tecla Alt premida e selecione o botão Grupo.

    Acabou de criar uma coleção, denominada CitiesByCountry, na qual os registos da coleção anterior estão agrupados pela coluna País.

    Cidades agrupadas.

  4. Para apresentar os registos primeiro cinco nesta coleção, selecione Coleções no menu Ficheiro.

    Cidades por país/região.

  5. Para apresentar as populações de cidades num país/região, selecione o ícone de tabela na coluna Cidades coluna desse país/região (por exemplo, Alemanha):

    População - Alemanha.

Filtrar e desagrupar registos

  1. Adicione outro botão e defina a respetiva propriedade Text para que o botão mostre "Filtrar".

  2. Defina a propriedade OnSelect deste botão para esta fórmula:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" no País )

  3. Mantenha a tecla Alt premida e selecione o botão que adicionou.

    Acabou de criar uma terceira coleção, designada CitiesByCountryFiltered, que inclui apenas os países com um "i" nos respetivos nomes (ou seja, não Espanha ou Itália).

    CitiesByCountryFiltered.

  4. Adicione mais um botão e defina sua propriedade Text para que o botão mostre "Ungroup".

  5. Defina a propriedade OnSelect deste botão para esta fórmula:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cidades )

    Que resulta em:

    Cidades por país/região após desagrupar.

Agregar os resultados

Outra operação que podemos executar numa tabela agrupada é compilar os resultados. Neste exemplo, vamos somar a população das cidades principais de cada país/região.

  1. Adicione outro botão e defina a respetiva propriedade Text para que o botão mostre "Soma".

  2. Defina a propriedade OnSelect do botão "Soma" como esta fórmula:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Soma das Populações da Cidade', Soma( Cidades, População ) )

    Que resulta em:

    Soma das cidades.

    AddColumns começa com a coleção base CitiesByCountry e adiciona uma nova coluna Soma das Populações da Cidade. Os valores desta coluna são calculados linha por linha, com base na fórmula Sum(cidades, população). AddColumns fornece o valor da coluna Cidades (uma tabela) para cada linha, e Soma soma a População para cada linha desta subtabela.

    Agora que temos a soma pretendida, podemos utilizar DropColumns para remover as subtabelas.

  3. Adicione outro botão e defina a propriedade Text para que o botão mostre "SumOnly".

  4. Defina a propriedade OnSelect do botão "SumOnly" para esta fórmula:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cidades )

    Que resulta em:

    Soma dos Países.

    Repare que não foi preciso desagrupar esta tabela.