La moyenne tronquée fournit une mesure plus robuste de la moyenne en excluant un pourcentage spécifié des valeurs les plus petites et les plus grandes du calcul. Modern PowerLa moyenne tronquée fournit une mesure plus robuste de la moyenne en excluant un pourcentage spécifié des valeurs les plus petites et les plus grandes du calcul. Modern Power

Calcul d'une moyenne tronquée dynamique dans Power BI à l'aide de DAX : Guide rapide

Pourquoi vous avez besoin d'une moyenne tronquée

Dans l'analyse de données, la fonction MOYENNE standard est un outil de base, mais elle présente une faiblesse significative : elle est très sensible aux distorsions causées par les valeurs aberrantes. Une seule valeur extrême, qu'elle soit élevée ou faible, peut fausser l'ensemble du résultat, représentant de manière incorrecte la véritable tendance centrale des données.

\ C'est là que la moyenne tronquée devient essentielle. Elle fournit une mesure plus robuste de la moyenne en excluant un pourcentage spécifié des valeurs les plus petites et les plus grandes du calcul.

\ Bien que les modèles Power BI modernes disposent d'une fonction TRIMMEAN intégrée, cette fonction est souvent indisponible lors de l'utilisation d'une connexion en direct à un ancien modèle Analysis Services (SSAS). Cet article fournit un modèle DAX manuel robuste qui reproduit cette fonctionnalité et reste entièrement dynamique, répondant à tous les segments et filtres de votre rapport.

La solution DAX pour une moyenne tronquée dynamique

Cette mesure calcule une moyenne tronquée de 20 % en supprimant les 10 % inférieurs et les 10 % supérieurs des valeurs avant de calculer la moyenne des 80 % restants.

\ Vous pouvez coller ce code directement dans la barre de formule "Nouvelle mesure".

Trimmed Mean (20%) = VAR TargetTable = 'FactTable' VAR TargetColumn = 'FactTable'[MeasureColumn] VAR LowerPercentile = 0.10 // Définit les 10 % inférieurs à tronquer VAR UpperPercentile = 0.90 // Définit les 10 % supérieurs à tronquer (1.0 - 0.10) // 1. Trouver la valeur au 10e percentile VAR MinThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, LowerPercentile ) // 2. Trouver la valeur au 90e percentile VAR MaxThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, UpperPercentile ) // 3. Calculer la moyenne, en incluant uniquement les valeurs entre les seuils RETURN CALCULATE( AVERAGEX( FILTER( TargetTable, TargetColumn >= MinThreshold && TargetColumn <= MaxThreshold ), TargetColumn ) )

Déconstruction de la logique DAX

Cette formule fonctionne en trois étapes distinctes, toutes exécutées dans le contexte de filtre actuel (par exemple, quels que soient les segments sélectionnés par l'utilisateur).

  1. Définir les variables clés
  • TargetTable & TargetColumn : Nous attribuons les noms de table et de colonne à des variables pour un code propre et réutilisable. Vous devez modifier 'FactTable'[MeasureColumn] pour correspondre à votre modèle de données.
  • LowerPercentile / UpperPercentile : Nous définissons les limites. 0.10 et 0.90 signifient que nous tronquons les 10 % inférieurs et les 10 % supérieurs. Pour tronquer 5 % de chaque extrémité (une troncature totale de 10 %), vous utiliseriez 0.05 et 0.95.

2. Trouver les seuils de percentile

  • MinThreshold & MaxThreshold : Ces variables stockent les valeurs réelles qui correspondent à nos limites de percentile.
  • PERCENTILEX.INC : Nous utilisons cette fonction "itérateur" car elle nous permet de filtrer d'abord la table.
  • `FILTER(…, NOT(ISBLANK(…))) : Il s'agit d'une étape cruciale. Nous calculons les percentiles uniquement pour les lignes où notre colonne cible n'est pas vide. Cela empêche les valeurs BLANK() de fausser le calcul du percentile.
  • Le résultat est que MinThreshold contient la valeur du 10e percentile (par exemple, 4.5) et MaxThreshold contient la valeur du 90e percentile (par exemple, 88.2) pour les données actuellement visibles.

3. Calculer la moyenne finale

  • RETURN CALCULATE(...) : La fonction CALCULATE est la clé pour rendre la mesure dynamique. Elle garantit que l'ensemble du calcul respecte les filtres appliqués par les segments ou les visuels du rapport.
  • AVERAGEX(FILTER(...)) : Le cœur du calcul. Nous utilisons AVERAGEX pour itérer sur une table.
  • FILTER(...) : Nous filtrons notre TargetTable une dernière fois. Ce filtre est la "troncature". Il ne conserve que les lignes où la valeur dans TargetColumn est :
  • Supérieure ou égale à notre MinThreshold
  • ET
  • Inférieure ou égale à notre MaxThreshold
  • AVERAGEX(..., TargetColumn) : AVERAGEX calcule ensuite la moyenne simple de TargetColumn pour uniquement les lignes qui ont passé le filtre.

Conclusion

En implémentant ce modèle DAX, vous créez un KPI robuste, dynamique et résistant aux valeurs aberrantes. Cette mesure fournit une image plus précise de la tendance centrale de vos données et se recalculera correctement à la volée lorsque les utilisateurs interagissent avec votre rapport Power BI.


Merci d'avoir pris le temps d'explorer avec moi des informations liées aux données. J'apprécie votre engagement. Si vous trouvez ces informations utiles, je vous invite à me suivre ou à me contacter sur LinkedIn ou X(@Luca_DataTeam). Bonne exploration !👋

Opportunité de marché
Logo de Power Protocol
Cours Power Protocol(POWER)
$0.12865
$0.12865$0.12865
-22.27%
USD
Graphique du prix de Power Protocol (POWER) en temps réel
Clause de non-responsabilité : les articles republiés sur ce site proviennent de plateformes publiques et sont fournis à titre informatif uniquement. Ils ne reflètent pas nécessairement les opinions de MEXC. Tous les droits restent la propriété des auteurs d'origine. Si vous estimez qu'un contenu porte atteinte aux droits d'un tiers, veuillez contacter service@support.mexc.com pour demander sa suppression. MEXC ne garantit ni l'exactitude, ni l'exhaustivité, ni l'actualité des contenus, et décline toute responsabilité quant aux actions entreprises sur la base des informations fournies. Ces contenus ne constituent pas des conseils financiers, juridiques ou professionnels, et ne doivent pas être interprétés comme une recommandation ou une approbation de la part de MEXC.