Introdução

Concluído

Assista ao vídeo a seguir para saber mais sobre as funções de iterador.

O DAX (Data Analysis Expressions) inclui uma família de funções conhecida como funções de iterador. As funções de iterador enumeram todas as linhas de uma determinada tabela e avaliam uma determinada expressão para cada linha. Elas fornecem flexibilidade e controle sobre como os seus cálculos de modelo resumem os dados.

Agora, você está familiarizado com as funções de resumo de coluna única, incluindo SUM, COUNT, MIN, MAX, entre outras. Cada uma dessas funções tem uma função de iterador equivalente que é identificada pelo sufixo "X", como SUMX, COUNTX, MINX, MAXX, entre outras. Além disso, existem funções de iterador especializadas que realizam filtragem, classificação, cálculos semiaditivos ao longo do tempo e muito mais.

Uma característica de todas as funções de iterador é que você precisa inserir uma tabela e uma expressão. A tabela pode ser uma referência de tabela de modelo ou uma expressão que retorne um objeto de tabela. A expressão precisa ser avaliada como um valor escalar.

As funções de resumo de coluna única, como SUM, são funções abreviadas. Internamente, o Microsoft Power BI converte a função SUM em SUMX. Como resultado, as duas definições de medida a seguir produzirão o mesmo resultado com o mesmo desempenho.

Revenue = SUM(Sales[Sales Amount])
Revenue =
SUMX(
    Sales,
    Sales[Sales Amount]
)

É importante entender como o contexto funciona com as funções de iterador. Como as funções de iterador são enumeradas nas linhas da tabela, a expressão é avaliada para cada linha no contexto de linha, semelhante às fórmulas de coluna calculadas. A tabela é avaliada no contexto de filtro. portanto, se você estiver usando o exemplo anterior de definição de medida de Revenue e se um visual de relatório tiver sido filtrado por ano fiscal FY2020, a tabela Sales conterá as linhas de vendas que foram ordenadas nesse ano. O contexto de filtro é descrito no módulo de contexto de filtro.

Importante

Quando você estiver usando as funções de iterador, evite usar tabelas grandes (de linhas) com expressões que usam as funções DAX ampliadas. Algumas funções, como a função DAX SEARCH, que examina um valor de texto que procura caracteres específicos ou texto, podem resultar em um desempenho lento. Além disso, a função DAX LOOKUPVALUE pode resultar em uma recuperação lenta e linha por linha dos valores. Nesse segundo caso, use a função DAX RELATED, sempre que possível.