Power BI Row Context

Row Context ou row by row calculations… Cálculo linha a linha. Usar ROW CONTEXT é a mesma coisa quando criamos colunas calculadas no Excel. Lembra que no Excel vc ia lá na sua tabela e criava uma nova tabela e colocar uma formula assim =coluna1*coluna2, e daí cada linha recebia o resultado da coluna1 vezes a coluna2? Então, Row Context é exatamente isso.

No Power BI o Row Context acontece:

  • Quando você escreve uma measure em uma coluna calculada, a measure é avaliada para cada linha da tabela, criando um Row Context para cada linha.
  • Quando você usa um iterador como FILTER, SUMX, AVERAGEX, ADDCOLUMNS ou qualquer uma das funções do DAX que iteram sobre uma expressão de tabela.

Para saber se uma função é Row Context ou Filter Context, ou até Transition Context, verifique a função em https://dax.guide/.

Um exemplo de Row Context, criando uma coluna calculada no Power BI, assim:

UnitPrice x OrderQuantity = FactInternetSales[UnitPrice] * FactInternetSales[OrderQuantity]

Nesse coluna calculada estamos multiplicando FactInternetSales[UnitPrice] vezes FactInternetSales[OrderQuantity].

Agora, se eu tentar criar uma Measure com essa mesma fórmula, recebo um erro assim:

A medida não vai funcionar, porque ela não consegue ler a nível de linha (row contexto) e, portanto, não consegue executar o cálculo.

Para conseguirmos executar esse mesmo cálculo precisamos de uma função iterativa, que execute o cálculo da measure linha a linha. Nesse caso podemos fazer da seguinte forma:

UnitPrice x OrderQuantity Measure =

SUMX(

    FactInternetSales,

    FactInternetSales[UnitPrice] * FactInternetSales[OrderQuantity]

)

Dessa forma, usando a função SUMX, o DAX foi capaz de calcular a nível de linha (Row Context) a multiplicação entre FactInternetSales[UnitPrice] e FactInternetSales[OrderQuantity].

A imagem abaixo mostra o resultado usando a coluna calculada e a medida:

(FirstName está ali só pra ajudar a entender o resultado)

Mais referências:

https://www.sqlbi.com/articles/row-context-and-filter-context-in-dax/

Published by Pedro Carvalho

Apaixonado por análise de dados e Power BI

Deixe uma resposta

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: