Introduction

Effectué

Regardez la vidéo suivante pour en savoir plus sur les fonctions d’itérateur.

DAX (Data Analysis Expressions) inclut une famille de fonctions appelées fonctions d’itérateur. Les fonctions d’itérateur énumèrent toutes les lignes d’une table donnée et évaluent une expression donnée pour chaque ligne. Ils vous offrent la flexibilité et le contrôle sur la façon dont vos calculs de modèles résument les données.

À l’heure actuelle, vous êtes familiarisé avec les fonctions de résumé à une seule colonne, notamment SUM, COUNT, MIN, MAX et autres. Chacune de ces fonctions a une fonction d’itérateur équivalente identifiée par le suffixe « X », par exemple SUMX, COUNTX, MINX, MAXX et autres. En outre, il existe des fonctions d’itérateur spécialisées qui effectuent le filtrage, le classement, les calculs semi-additifs dans le temps, et bien plus encore.

Une caractéristique commune à toutes les fonctions d’itérateur, est que vous devez transmettre une table et une expression. La table peut être un modèle de référence de table ou d’expression qui retourne un objet table. L'expression doit être équivalente à une valeur scalaire.

Les fonctions de résumé à une seule colonne, comme SUM, sont des fonctions raccourcies. En interne, Microsoft Power BI convertit la fonction SUM en SUMX. Ainsi, les deux définitions de mesures suivantes produisent le même résultat avec les mêmes performances.

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

Il est important de comprendre comment le contexte fonctionne avec les fonctions d’itérateur. Étant donné que les fonctions d’itérateur énumèrent les lignes de table, l’expression est évaluée pour chaque ligne dans le contexte de ligne, de la même façon que les formules de colonne calculée. La table est évaluée dans le contexte de filtre. Ainsi, si vous utilisez l’exemple de définition de la mesure Revenu précédent et si un objet visuel de rapport a été filtré par l’année fiscale FY2020, la table Ventes contient alors des lignes de ventes ordonnées dans cette année. Le contexte de filtre est décrit dans le module de contexte de filtre.

Important

Quand vous utilisez des fonctions d’itérateur, veillez à éviter d’utiliser de grandes tables (de lignes) avec des expressions qui utilisent des fonctions DAX volumineuses. Certaines fonctions, telles que la fonction DAX SEARCH, qui analyse une valeur de texte qui recherche des caractères ou du texte spécifiques, peuvent ralentir les performances. En outre, la fonction DAX LOOKUPVALUE peut ralentir la récupération des valeurs ligne par ligne. Dans ce deuxième cas, utilisez à la place la fonction DAX RELATED le cas échéant.