Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O modelo de avaliação da linguagem de fórmula do Power Query M é modelado após o modelo de avaliação comumente encontrado em planilhas, em que a ordem dos cálculos pode ser determinada com base nas dependências entre as fórmulas nas células.
Se você tiver escrito fórmulas em uma planilha como o Excel, poderá reconhecer que as fórmulas à esquerda resultarão nos valores à direita quando calculados:
Em M, uma expressão pode referenciar expressões anteriores por nome e o processo de avaliação determinará automaticamente a ordem na qual as expressões referenciadas são calculadas.
Vamos usar um registro para produzir uma expressão equivalente ao exemplo de planilha acima. Ao inicializar o valor de um campo, você se refere a outros campos dentro do registro pelo nome do campo, da seguinte maneira:
[
A1 = A2 * 2,
A2 = A3 + 1,
A3 = 1
]
A expressão acima é avaliada para o seguinte registro:
[
A1 = 4,
A2 = 2,
A3 = 1
]
Os registros podem ser contidos ou aninhados em outros registros. Você pode usar o operador de pesquisa ([ ]) para acessar os campos de um registro por nome. Por exemplo, o seguinte registro tem um campo chamado Vendas contendo um registro e um campo chamado Total que acessa os campos FirstHalf e SecondHalf do registro Vendas:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = Sales[FirstHalf] + Sales[SecondHalf]
]
A expressão acima é avaliada para o seguinte registro:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = 2100
]
Use o operador de índice posicional ({ }) para acessar um item em uma lista por seu índice numérico. Os valores em uma lista são referenciados usando um índice baseado em zero desde o início da lista. Por exemplo, os índices 0 e 1 são usados para referenciar o primeiro e o segundo itens na lista abaixo:
[
Sales =
{
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
Total = FirstHalf + SecondHalf // equals 2100
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
Total = FirstHalf + SecondHalf // equals 2500
]
},
#"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600
]
Avaliação lenta e ansiosa
As expressões de membro lista, registro e tabela , bem como expressões let (Ir para Expressões, valores e let expression), são avaliadas usando a avaliação lenta. Ou seja, eles são avaliados quando necessário. Todas as outras expressões são avaliadas usando a avaliação ansiosa. Ou seja, eles são avaliados imediatamente quando encontrados durante o processo de avaliação. Uma boa maneira de pensar sobre isso é lembrar que avaliar uma lista ou expressão de registro retornará um valor de lista ou registro que sabe como seus itens de lista ou campos de registro precisam ser computados, quando solicitados (por operadores de pesquisa ou índice).