Usar as funções de iterador de agregação
Cada função de resumo de coluna única tem uma função de iterador equivalente. As seções a seguir consideram dois cenários de agregação quando as funções de iterador forem úteis: o resumo complexo e o resumo de maior granularidade.
Resumo complexo
Nesta seção, você criará a sua primeira medida que usa uma função de iterador. Primeiro, baixe e abra o arquivo Adventure Works DW 2020 M05.pbix. Em seguida, adicione a seguinte definição de medida:
Revenue =
SUMX(
Sales,
Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)
Formate a medida Revenue como uma moeda com duas casas decimais e adicione-a ao visual de tabela encontrado na Página 1 do relatório.
Usando uma função de iterador, a fórmula de medida de Receita agrega mais do que os valores de uma coluna única. Para cada linha, ela usa os valores de contexto de linha de três colunas para produzir o valor da receita.
Agora, adicione outra medida:
Discount =
SUMX(
Sales,
Sales[Order Quantity]
* (
RELATED('Product'[List Price]) - Sales[Unit Price]
)
)
Formate a medida de Desconto para moeda com duas casas decimais e, em seguida, adicione-a ao visual de tabela.
Observe que a fórmula usa a função RELATED
. Lembre-se, o contexto de linha não é estendido além da tabela. Se a sua fórmula precisar referenciar colunas em outras tabelas e houver relações de modelo entre as tabelas, use a função RELATED
para a relação com um lado ou a função RELATEDTABLE
para a relação com muitos lados.
Resumo de maior granularidade
O exemplo a seguir considera um requisito para relatar a receita média. Adicione a seguinte medida:
Revenue Avg =
AVERAGEX(
Sales,
Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)
Formate a medida de Receita Média para moeda com duas casas decimais e, em seguida, adicione-a ao visual de tabela.
Considere que média significa a soma dos valores dividida pela contagem de valores. No entanto, essa teoria suscita uma pergunta: O que a contagem de valores representa? Nesse caso, a contagem de valores é o número de expressões que não foram avaliadas como BLANK. Além disso, como a função de iterador enumera as linhas da tabela Sales, a média significaria a receita por linha. Além disso, seguindo essa lógica, como cada linha da tabela Sales registra uma linha de pedido de venda, ela pode ser descrita mais precisamente como receita por linha de pedido.
Da mesma forma, você deve renomear a medida de Receita Média para Receita Média da Linha do Pedido de modo que ela relate claramente aos usuários o que está sendo usado como base média.
O exemplo a seguir usa uma função de iterador para criar uma medida que aumenta a granularidade para o nível de pedido de venda (um pedido de venda consiste em uma ou mais linhas de pedido). Adicione a seguinte medida:
Revenue Avg Order =
AVERAGEX(
VALUES('Sales Order'[Sales Order]),
[Revenue]
)
Formate a medida de Receita Média do Pedido para moeda com duas casas decimais e, em seguida, adicione-a ao visual de tabela.
Conforme esperado, a receita média de um pedido é sempre maior do que a receita média de uma linha do pedido.
Observe que a fórmula usa a função DAX VALUES
. Essa função permite que as suas fórmulas determinem quais valores estão no contexto do filtro. Nesse caso, essa função AVERAGEX
itera cada pedido de venda no contexto de filtro. Em outras palavras, ela itera cada pedido de venda do mês. O contexto de filtro e a função VALUES
serão apresentados no módulo de contexto de filtro.