Qual é verdadeira diferença entre CALCULATETABLE e FILTER se ambas retornam um tabela e aplicam uma expressão como filtro? A resposta é depende, depende da existência ou não de contexto de filtro.
Se não houver contexto de filtro elas funcionarão de forma semelhante, retornam 99 linhas com os produtos da cor vermelha.
Mas quanto elas são avaliadas em um contexto de filtro onde uma medida está sendo avaliada a sequencia de execução é diferente, o que muda o resultado.
No caso da CALCULATEDTABLE, primeiramente o filtro é aplicado e depois a tabela do primeiro argumento é criada mantendo o contexto de filtro.
No caso de filter isso não acontece. Filter primeiramente cria a table e depois aplica o filtro. Isso faz com que o resultado seja diferente.
Outra diferença é que FILTER aceita expressões de filtro em medidas e CALCULATEDTABLE não.
Os códigos deste exemplo estão em: Dax code
Nenhum comentário:
Postar um comentário