Utiliser les fonctions d’itérateur d’agrégation

Effectué

Chaque fonction de résumé à une seule colonne a sa fonction d’itérateur équivalente. Les sections suivantes prennent en compte deux scénarios d’agrégation quand les fonctions d’itérateur sont utiles : un résumé complexe et de grain supérieur.

Résumé complexe

Dans cette section, vous allez créer votre première mesure qui utilise une fonction d’itérateur. Tout d’abord, téléchargez et ouvrez le fichier Adventure Works DW 2020 M05.pbix. Ajoutez ensuite la définition de mesure suivante :

Revenue =
SUMX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Mettez en forme la mesure Revenu en tant que devise avec deux décimales, puis ajoutez-la à l’objet visuel de table qui se trouve sur la Page 1 du rapport.

Une image montre un objet visuel de table à deux colonnes : Mois et revenu. Les données d’une année s’affichent.

À l’aide d’une fonction d’itérateur, la formule de la mesure Revenu agrège plus que les valeurs d’une seule colonne. Pour chaque ligne, elle utilise les valeurs de contexte de ligne de trois colonnes pour produire le montant des revenus.

Maintenant, ajoutez une autre mesure :

Discount =
SUMX(
    Sales,
    Sales[Order Quantity]
    * (
        RELATED('Product'[List Price]) - Sales[Unit Price]
    )
)

Mettez en forme la mesure Remise en tant que devise avec deux décimales, puis ajoutez-la à l’objet visuel de table.

Une image montre un objet visuel de table à trois colonnes : Mois, revenu et remise. Les données d’une année s’affichent.

Notez que la formule utilise la fonction RELATED. Souvenez-vous que le contexte de ligne ne s’étend pas au-delà de la table. Si votre formule doit faire référence à des colonnes dans d’autres tables et que les relations de modèle existent entre les tables, utilisez la fonction RELATED pour la relation unilatérale ou la fonction RELATEDTABLE pour la relation multilatérale.

Résumé de grain supérieur

L’exemple suivant tient compte d’une exigence de rapport sur le revenu moyen. Ajoutez la mesure suivante :

Revenue Avg =
AVERAGEX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Mettez en forme la mesure Revenu moyen en tant que devise avec deux décimales, puis ajoutez-la à l’objet visuel de table.

Une image montre un visuel de table à quatre colonnes : Mois, revenu, remise et revenu moyen. Les données d’une année s’affichent.

Supposons que moyen correspond à la somme des valeurs divisée par le nombre de valeurs. Toutefois, cette théorie soulève une question : Que représente le nombre de valeurs ? Dans ce cas, le nombre de valeurs est le nombre d’expressions qui n’ont pas été évaluées comme VIDE. En outre, étant donné que la fonction d’itérateur énumère les lignes de la table Ventes, moyen signifie revenu par ligne. En approfondissant cette logique, étant donné que chaque ligne de la table Ventes enregistre une ligne de commande client, elle peut être décrite plus précisément comme revenu par ligne de commande client.

En conséquence, vous devez renommer la mesure Revenu moyen par Ligne de commande de revenu moyen, afin qu’il soit clair que les utilisateurs sont signalés en fonction de ce qui est utilisé sur une base des revenus moyens.

L’exemple suivant utilise une fonction d’itérateur pour créer une nouvelle mesure qui élève la granularité au niveau de la commande client (une commande client se compose d’une ou plusieurs lignes de commande). Ajoutez la mesure suivante :

Revenue Avg Order =
AVERAGEX(
    VALUES('Sales Order'[Sales Order]),
    [Revenue]
)

Mettez en forme la mesure Commande de revenu moyen en tant que devise avec deux décimales, puis ajoutez-la à l’objet visuel de table.

Une image montre un objet visuel de table à cinq colonnes : Mois, revenu, remise, ligne de commande de revenu moyen et commande de revenu moyen. Les données d’une année s’affichent.

Comme prévu, le revenu moyen d’une commande est toujours plus élevé que le revenu moyen d’une seule ligne de commande.

Notez que la formule utilise la fonction DAX VALUES. Cette fonction permet à vos formules de déterminer les valeurs qui sont dans le contexte de filtre. Dans ce cas, la fonction AVERAGEX parcourt chaque commande client dans le contexte de filtre. En d’autres termes, elle parcourt chaque commande client pour le mois. Le contexte de filtre et la fonction VALUES sont introduits dans le module de contexte de filtre.