Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
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.
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.
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.
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).
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.
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.
Et si nous déposons la mesure que nous venons de faire dans le tableau, cela fait aussi exactement ce que nous attendons.
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.
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.
Déposons celui-là dans notre table. Tout d'un coup ça ne marche plus.
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.
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.
Ce que nous devrions obtenir pour le dénominateur est le même nombre dans chaque ligne, mais ce n'est pas le cas.
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.
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.
Revenons à notre mesure et supprimons le contexte du mois et de l'année que nous utilisons comme tri.
Nous obtenons maintenant exactement ce que nous devrions, c'est-à-dire le mois et l'année calculés en pourcentage approprié.
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.
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.
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.
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.
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.
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.
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir