DAX Outros - função GROUPBY

Descrição

Retorna uma tabela com um conjunto de colunas selecionadas. Permite que a função DAX CURRENTGROUP seja usada dentro de funções de agregação nas colunas de extensão que ela adiciona. GROUPBY tenta reutilizar os dados que foram agrupados, tornando-os de alto desempenho.

A função DAX GROUPBY é semelhante à função DAX SUMMARIZE. No entanto, GROUPBY não executa um CALCULATE implícito para nenhuma coluna de extensão que adiciona.

A função DAX GROUPBY é nova no Excel 2016.

Sintaxe

GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>] …)

Parâmetros

Sr. Não. Termo e Definição
1

table

Qualquer expressão DAX que retorna uma tabela de dados.

2

groupBy_columnName1

O nome de uma coluna existente na tabela (ou em uma tabela relacionada), pela qual os dados devem ser agrupados.

Este parâmetro não pode ser uma expressão.

3

name

O nome dado a uma nova coluna que está sendo adicionada à lista de colunas GroupBy, entre aspas duplas.

4

expression

Qualquer expressão DAX que retorna um único valor escalar, em que a expressão deve ser avaliada para cada conjunto de valores GroupBy.

  • Pode incluir qualquer uma das funções de agregação “X”, como SUMX, AVERAGEX, MINX, MAXX, etc. e quando uma dessas funções é usada desta forma, o parâmetro da tabela (que é uma expressão de tabela) pode ser substituído por Função CURRENTGROUP. (Consulte a Seção de Comentários para obter detalhes).

  • No entanto, a função CURRENTGROUP só pode ser usada no nível superior de varreduras de tabela na expressão. Que significa,

    • ABS (SUMX (CURRENTGROUP (), [Coluna])) é permitido, pois o ABS não executa uma varredura.

    • Porém, SUMX (<table>, SUMX (CURRENTGROUP ()…)) não é permitido.

  • A função DAX CALCULATE e os campos calculados não são permitidos na expressão

Valor de retorno

Uma tabela com as colunas selecionadas para os parâmetros groupBy_columnName e as agrupadas por colunas designadas pelos parâmetros de nome.

Observações

A função GROUPBY faz o seguinte -

  • Comece com a tabela especificada (e todas as tabelas relacionadas na direção “para um”).

  • Crie um agrupamento usando todas as colunas GroupBy (que devem existir na tabela da etapa 1).

  • Cada grupo é uma linha no resultado, mas representa um conjunto de linhas na tabela original.

  • Para cada grupo, avalie as colunas de extensão que estão sendo adicionadas. Ao contrário da função SUMMARIZE, um CALCULATE implícito não é executado e o grupo não é colocado no contexto do filtro.

Parâmetros

  • Cada coluna para a qual você define um nome deve ter uma expressão correspondente. Caso contrário, um erro será retornado.

    • O primeiro parâmetro, nome, define o nome da coluna nos resultados. O segundo parâmetro, expressão, define o cálculo executado para obter o valor de cada linha dessa coluna.

    • Cada nome deve ser colocado entre aspas duplas.

  • groupBy_columnName deve estar em uma tabela ou em uma tabela relacionada.

    • A função agrupa um conjunto selecionado de linhas em um conjunto de linhas de resumo pelos valores de uma ou mais colunas groupBy_columnName. Uma linha é retornada para cada grupo.

CURRENTGROUP ()

  • A função CURRENTGROUP só pode ser usada em uma expressão que define uma coluna dentro da função GROUPBY.

  • CURRENTGROUP retorna um conjunto de linhas do parâmetro da tabela de GROUPBY que pertencem à linha atual do resultado de GROUPBY.

  • A função CURRENTGROUP não aceita parâmetros e só é compatível como o primeiro parâmetro para uma das seguintes funções de agregação: AverageX, CountAX, CountX, GeoMeanX, MaxX, MinX, ProductX, StDevX.S, StDevX.P, SumX, VarX.S, VarX .P.

Exemplo

= GROUPBY ( 
   Sales,Sales[Salesperson],Products[Product],"Total Sales",  
   SUMX (CURRENTGROUP (),[Sales Amount]) 
)