Optimisation DAX : où trouver le piège DAX caché

Je veux me concentrer aujourd'hui sur quelque chose que j'appelle le piège DAX caché. Si vous rencontrez cette situation, vous aurez l'impression de perdre la tête parce que votre DAX aura l'air correct, mais cela ne fonctionnera pas. Je vous expliquerai quand cela se produit et ce que vous pouvez faire à ce sujet, et dans le processus, je parlerai également de certaines meilleures pratiques générales d'optimisation DAX. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.

Voyons d'abord avec quoi nous travaillons ici. Nous avons environ 10 ans de données de l'Internet Movie Database. Les tableaux de faits sont assez simples et nous avons des données de notation, des données budgétaires et des données brutes.

Aujourd'hui, nous examinerons les recettes mondiales.

Optimisation DAX : où trouver le piège DAX caché

Nous avons également notre table de dates étendues. Il s'agira d'une analyse temporelle basée sur le tableau des dates et le tableau des faits.

Optimisation DAX : où trouver le piège DAX caché

Table des matières

Total mondial brut par an

Nous voulons faire quelque chose de vraiment commun et simple. Notre Total Worldwide Brut n'est qu'une mesure de somme agrégée très simple, que nous souhaitons convertir en pourcentage.

Optimisation DAX : où trouver le piège DAX caché

Pour ce faire, nous prenons le numérateur ( mesure du total mondial brut ) et le dénominateur ( mesure du total mondial brut , mais en supprimant le contexte du filtre d'année).

Optimisation DAX : où trouver le piège DAX caché

J'ai utilisé la car je pense que c'est plus intuitif quand on lit le code, mais si vous préférez la , ça marche tout aussi bien. Nous divisons simplement le numérateur par le dénominateur pour obtenir le résultat.

Si nous prenons la mesure résultante et la déposons dans notre tableau, vous verrez qu'elle fait exactement ce que nous attendons qu'elle fasse. Nous obtenons 100% en bas et nous obtenons les années converties en leurs pourcentages individuels. Jusqu'ici tout va bien, et nous n'avons pas encore rencontré de problèmes.

Optimisation DAX : où trouver le piège DAX caché

Total mondial brut par trimestre

Examinons une situation similaire où nous procédons par trimestre. Cette mesure pourrait être utile car il existe des hypothèses selon lesquelles les recettes de la saison des films d'été sont différentes du début de l'année et vers la fin de l'année menant à la saison des Oscars.

Encore une fois, nous avons exactement la même mesure avec la fonction REMOVEFILTERS sur les numéros de trimestre au lieu de l'année.

Optimisation DAX : où trouver le piège DAX caché

Et si nous déposons la mesure que nous venons de faire dans le tableau, cela fait aussi exactement ce que nous attendons.

Optimisation DAX : où trouver le piège DAX caché

Total mondial brut par mois et par an

Jetons un coup d'œil au troisième cas, qui peut être très courant, où nous voulons regarder par mois et par année.

Optimisation DAX : où trouver le piège DAX caché

Et encore une fois, nous utiliserons la même mesure qu'auparavant. Mais cette fois, nous allons supprimer le filtre sur le mois et l'année.

Optimisation DAX : où trouver le piège DAX caché

Déposons celui-là dans notre table. Tout d'un coup ça ne marche plus.

Optimisation DAX : où trouver le piège DAX caché

Nous pouvons dire ce qui ne fonctionne pas à ce sujet. Nous savons que la mesure mondiale brute fonctionne, ce qui signifie que le numérateur est bon, mais pas le dénominateur. Dans chacun des cas précédents, la fonction REMOVEFILTERS a correctement supprimé le filtre, mais ici, ce n'est manifestement pas le cas.

Nous pouvons en fait tester cela en modifiant ce que nous avons renvoyé ici dans le résultat.

Optimisation DAX : où trouver le piège DAX caché

Au lieu de Result, utilisons Denominator. Gardez à l'esprit que cela va être formaté en pourcentage, donc ça va avoir l'air un peu drôle.

Optimisation DAX : où trouver le piège DAX caché

Ce que nous devrions obtenir pour le dénominateur est le même nombre dans chaque ligne, mais ce n'est pas le cas.

Optimisation DAX : où trouver le piège DAX caché

Nous pouvons dire qu'il ne supprime pas le filtre sur le mois et l'année, et pense que c'est parce que le mois et l'année sont dans le texte.

Optimisation DAX : où trouver le piège DAX caché

Mais le précédent pour le trimestre était également exprimé en texte, donc ce n'est pas simplement parce que son texte. Il ne reste plus qu'à le régler. Une fois que vous déposez le champ sans le trier, il va trier par ordre alphabétique.

Dans la table de dates étendues, examinons ce champ appelé Month & Year . Si nous le regardons dans la colonne Trier par , nous verrons quelque chose d'intéressant.

Nous verrons que cette colonne est triée par un nombre appelé MonthnYear. Lorsque vous triez une colonne par une autre, cette colonne de tri devient en fait une partie du contexte de filtre. C'est ce qui fausse ce calcul.

Optimisation DAX : où trouver le piège DAX caché

Revenons à notre mesure et supprimons le contexte du mois et de l'année que nous utilisons comme tri.

Optimisation DAX : où trouver le piège DAX caché

Nous obtenons maintenant exactement ce que nous devrions, c'est-à-dire le mois et l'année calculés en pourcentage approprié.

Optimisation DAX : où trouver le piège DAX caché

Lors de la suppression d'un contexte de filtre, il faudra deux champs pour le faire lorsqu'il sera trié . Vous pouvez demander qu'au lieu d'avoir à faire deux champs ici, pourquoi ne pouvons-nous pas simplement supprimer les filtres sur l'ensemble de la table de dates ?

La réponse est oui, et cela fonctionnera pour les trois exemples dont nous avons parlé car chacune de ces colonnes fait partie de notre table de dates. La suppression de tout le contexte de filtre sur cette table fonctionnera pour les trois cas, mais c'est en fait une mauvaise idée.

En tant que principe général d'optimisation DAX, vous devez supprimer autant de contexte de filtre que nécessaire pour obtenir le résultat souhaité.

Dans la plupart des cas, vous n'allez pas présenter cela sous forme de tableau. Vous la présenterez sous forme de matrice et vous aurez besoin d'une mesure plus complexe car vous avez deux granularités différentes dans la même colonne. Cette mesure semble compliquée, mais elle ne l'est vraiment pas.

Optimisation DAX : où trouver le piège DAX caché

Ce n'est qu'une extension de ce que nous avons déjà fait. La première partie de ce calcul d'optimisation DAX montre les dénominateurs pour les différentes granularités. Nous supprimons le contexte de filtre pour un mois, pour l'année et pour l'ensemble du tableau.

Optimisation DAX : où trouver le piège DAX caché

Pour la deuxième partie du calcul, nous avons utilisé SWITCH TRUE. Pour cette fonction, il faut aller du plus spécifique au moins spécifique. Le mois est notre portée la plus étroite et la plus spécifique, c'est donc par là que nous commençons. Nous devrons supprimer le contexte en utilisant ces deux champs que nous avons identifiés.

Optimisation DAX : où trouver le piège DAX caché

Pour la portée de l'année, nous devons supprimer le contexte sur l'année et supprimer le contexte sur l'ensemble de la table.

Optimisation DAX : où trouver le piège DAX caché

Jetons un coup d'œil à ce qui se passe si nous devons prendre et supprimer le contexte sur l'ensemble de la table de dates . Nous utiliserons une mesure différente qui supprime le contexte sur l'ensemble de la table de dates pour les trois cas.

Optimisation DAX : où trouver le piège DAX caché

Nous verrons que la mesure supprime trop le contexte. Au lieu de calculer la contribution de chaque mois à cette année, il calcule la contribution de ce mois à l'ensemble des données. Ce n'est pas ce que nous voulons qu'il se produise, car la suppression du contexte de l'ensemble du tableau n'est vraiment qu'un instrument contondant lorsqu'un scalpel est nécessaire.

Conclusion

Il existe de nombreux cas où vous avez une matrice et vous devez contrôler soigneusement le contexte que vous supprimez. Supprimer simplement le contexte sur l'ensemble de la table va causer ce genre de problèmes.

J'espère que lorsque cette situation se présentera (ce qui arrivera invariablement à un moment donné), vous la reconnaîtrez comme le piège caché dont nous avons discuté dans cet article sur l'optimisation DAX, et vous pourrez l'éviter sans la même frustration. que cela m'a causé lorsque je l'ai vu pour la première fois et que je ne pouvais pas comprendre pourquoi mon DAX ne fonctionnait pas correctement.

Si vous avez apprécié le sujet d'optimisation DAX couvert dans ce didacticiel particulier, veuillez vous abonner à la chaîne de télévision LuckyTemplates . Nous avons une énorme quantité de contenu qui sort tout le temps de moi-même et d'une gamme de créateurs de contenu, qui se consacrent tous à améliorer la façon dont vous utilisez LuckyTemplates et Power Platform.

Leave a Comment

Gestion des erreurs dans Power Automate via le branchement parallèle

Gestion des erreurs dans Power Automate via le branchement parallèle

Découvrez l

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculez la marge en pourcentage à l

Modifier les formats de date à laide de léditeur Power Query

Modifier les formats de date à laide de léditeur Power Query

Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d

Comment adapter les cellules Excel au texte : 4 solutions simples

Comment adapter les cellules Excel au texte : 4 solutions simples

Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.