Introdução

Concluído

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

As Expressões de Análise de Dados (DAX) incluem uma família de funções conhecidas 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. Fornecem-lhe flexibilidade e controlo sobre a forma como os cálculos do modelo resumem os dados.

Por esta altura, já está familiarizado com funções de resumo de coluna única, incluindo SUM, COUNT, MIN, MAX, e outros. Cada uma destas funções tem uma função de iterador equivalente que é identificada pelo sufixo "X", como SUMX, COUNTX, MINX, e MAXXoutros. Além disso, existem funções de iterador especializadas que executam filtragem, classificação, cálculos semiaditivos ao longo do tempo e muito mais.

Uma caraterística de todas as funções de iterador é o facto de ter de transmitir uma tabela e uma expressão. A tabela pode ser uma referência de tabela de modelo ou uma expressão que devolva um objeto de tabela. A expressão tem de 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 SUM função em SUMX. Como resultado, as duas definições de medida seguintes produzirão o mesmo resultado com o mesmo desempenho.

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

É importante compreender a forma 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, tal como acontece com as fórmulas de colunas calculadas. A tabela é avaliada no contexto de filtro, por isso, se estiver a utilizar o exemplo anterior de definição de medida Receita , se um elemento visual de relatório tiver sido filtrado pelo ano fiscal FY2020, a tabela Vendas conterá linhas de vendas que foram ordenadas nesse ano. O contexto de filtro é descrito no módulo do contexto de filtro.

Importante

Quando estiver a utilizar funções de iterador, certifique-se de que evita utilizar tabelas grandes (de linhas) com expressões que utilizam funções DAX expansivas. Algumas funções, como a SEARCH função DAX, que analisa um valor de texto que procura carateres ou texto específicos, podem resultar num desempenho lento. Além disso, a LOOKUPVALUE função DAX pode resultar numa lenta obtenção de valores linha a linha. Neste segundo caso, utilize a RELATED função DAX, sempre que possível.