Saber mais sobre o contexto de linha
Agora que criou colunas calculadas, ficará a saber como as fórmulas são avaliadas.
A fórmula para uma coluna calculada é avaliada para cada linha da tabela. Além disso, é avaliada no contexto de linha, o que significa a linha atual. Considere a definição de coluna calculada Ano Fiscal Vencido:
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) <= 6,
1
)
Quando a fórmula é avaliada para cada linha, a referência de coluna 'Due Date'[Due Date]
devolve o valor de coluna para essa linha. Ficará a saber que o Microsoft Excel tem o mesmo conceito para trabalhar com fórmulas em tabelas do Excel.
No entanto, o contexto de linha não se estende para além da tabela. Se a fórmula precisar de fazer referência a colunas noutras tabelas, terá duas opções:
- Se as tabelas estiverem relacionadas, direta ou indiretamente, pode utilizar a
RELATED
função OURELATEDTABLE
DAX. ARELATED
função obtém o valor no lado único da relação, enquanto que obtém valoresRELATEDTABLE
no lado muitos. ARELATEDTABLE
função devolve um objeto de tabela. - Quando as tabelas não estão relacionadas, pode utilizar a
LOOKUPVALUE
função DAX.
Geralmente, tente utilizar a RELATED
função sempre que possível. Normalmente, terá um melhor desempenho do que a LOOKUPVALUE
função devido às formas como os dados de relações e colunas são armazenados e indexados.
Agora, adicione a seguinte definição de coluna calculada à tabela Vendas :
Discount Amount =
(
Sales[Order Quantity]
* RELATED('Product'[List Price])
) - Sales[Sales Amount]
A definição da coluna calculada adiciona a coluna Valor do Desconto à tabela Vendas . O Power BI avalia a fórmula de coluna calculada para cada linha da tabela Vendas . Os valores das colunas Quantidade de Encomendas e Valor das Vendas são obtidos no contexto de linha. No entanto, uma vez que a coluna Preço da Lista pertence à tabela Produto , a RELATED
função é necessária para obter o valor de preço de lista do produto de venda.
O contexto de linha é utilizado quando são avaliadas as fórmulas de colunas calculadas. É também utilizado quando é utilizada uma classe de funções, conhecida como funções de iterador. As funções de iterador proporcionam flexibilidade para criar resumos sofisticados. As funções de iterador são descritas num módulo posterior.