Executar a transição de contexto

Concluído

O que acontece quando uma medida ou expressão de medida é avaliada dentro do contexto de linha? Esse cenário pode ocorrer em uma fórmula de coluna calculada ou quando uma expressão em uma função de iterador é avaliada.

No exemplo a seguir, você adicionará uma coluna calculada na tabela Customer para classificar os clientes em uma classe de fidelidade. O cenário é simples: Quando a receita produzida pelo cliente é inferior a US$ 2500, os clientes são classificados como Low; caso contrário, eles são classificados como High.

Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

Na Página 4 do relatório, adicione a coluna Segmento de Cliente como a legenda do gráfico de pizza.

Uma imagem mostra um gráfico de pizza intitulado Receita por Segmento de Cliente. Há apenas um segmento: Alto, que representa 100% dos dados.

Observe que existe apenas um valor de Segmento de Cliente. O motivo é que a fórmula da coluna calculada produz um resultado incorreto: Cada cliente recebe o valor de Alta porque a expressão SUM(Sales[Sales Amount]) não é avaliada em um contexto de filtro. Consequentemente, cada cliente é avaliado na soma de cadavalor da coluna Valor das Vendas na tabela Vendas.

Para forçar a avaliação da expressão SUM(Sales[Sales Amount])para cada cliente, uma transição de contexto que aplica os valores de coluna de contexto de linha ao contexto de filtro precisa ocorrer. É possível realizar essa transição usando a função CALCULATE sem inserir expressões de filtro.

Modifique a definição de coluna calculada para que ela produza o resultado correto.

Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

No visual de gráfico de pizza, adicione a nova coluna calculada à caixa Legenda. Verifique se agora são exibidos dois segmentos da pizza.

Uma imagem mostra um gráfico de pizza intitulado Receita por Segmento de Cliente. Há dois segmentos: Alto e Baixo. Alto representa 76% dos dados e Baixo representa 24%.

Nesse caso, a função CALCULATE aplica valores de contexto de linha como filtros, o que é conhecido como transição de contexto. Para ser preciso, o processo não funciona exatamente assim quando há uma coluna exclusiva na tabela. Quando uma coluna exclusiva está na tabela, você só precisa aplicar um filtro a essa coluna para fazer a transição acontecer. Nesse caso, o Power BI aplica um filtro à coluna CustomerKey para o valor no contexto de linha.

Se você referenciar medidas em uma expressão que é avaliada no contexto de linha, a transição de contexto será automática. Portanto, você não precisa inserir referências de medida para a função CALCULATE.

Modifique a definição de coluna calculada, que faz referência à medida Receita, e observe que ela continua a produzir o resultado correto.

Customer Segment = 
VAR CustomerRevenue = [Revenue]
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

Agora, você pode concluir a fórmula da medida Comissão de Vendas. Para produzir um total, você precisa usar uma função de iterador para iterar em todas as regiões no contexto de filtro. A expressão de função de iterador precisa usar a função CALCULATE para fazer a transição do contexto de linha para o contexto de filtro. Observe que ele não precisa mais testar se apenas um valor de coluna Country na tabela Sales Territory está no contexto de filtro, porque sabe-se que ela está filtrando por apenas um país (considerando que ela está iterando pelas regiões no contexto de filtro, sendo que uma região pertence a apenas um país).

Passe para a Página 3 do relatório e modifique a definição de medida Sales Commission para usar a função de iterador SUMX:

Sales Commission =
SUMX(
    VALUES('Sales Territory'[Region]),
    CALCULATE(
        [Revenue]
        * IF(
            VALUES('Sales Territory'[Country]) = "United States",
            0.15,
            0.1
        )
    )
)

O visual de tabela agora exibe um total de comissão de vendas para todas as regiões.

Uma imagem mostra um visual de tabela com três colunas: Região, Receita e Comissão de Vendas. Dez linhas de região e um total são mostrados. A Comissão de Vendas total agora tem um total.