Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
| Função | Aplica-se a |
|---|---|
| GroupBy |
|
| Ungroup |
|
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
- Adicione um botão e defina a respetiva propriedade Text para que o botão mostre Original.
- 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}
)
Mantenha a tecla Alt premida e selecione o botão Original.
Criou uma coleção, denominada CityPopulations, que contém estes dados:
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:
Agrupar registos
Adicione outro botão e defina a respetiva propriedade Text como "Grupo".
Defina a propriedade OnSelect deste botão para esta fórmula:
ClearCollect( CidadesPorPaís, GroupBy( CidadesPopulações, País, Cidades )
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.
Para apresentar os registos primeiro cinco nesta coleção, selecione Coleções no menu Ficheiro.
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):
Filtrar e desagrupar registos
Adicione outro botão e defina a respetiva propriedade Text para que o botão mostre "Filtrar".
Defina a propriedade OnSelect deste botão para esta fórmula:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" no País )
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).
Adicione mais um botão e defina sua propriedade Text para que o botão mostre "Ungroup".
Defina a propriedade OnSelect deste botão para esta fórmula:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cidades )
Que resulta em:
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.
Adicione outro botão e defina a respetiva propriedade Text para que o botão mostre "Soma".
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:
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.
Adicione outro botão e defina a propriedade Text para que o botão mostre "SumOnly".
Defina a propriedade OnSelect do botão "SumOnly" para esta fórmula:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cidades )
Que resulta em:
Repare que não foi preciso desagrupar esta tabela.