Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Dans cet article de blog, nous traiterons de certains problèmes gênants liés à l'intelligence temporelle, en particulier les problèmes causés par la granularité hebdomadaire et les problèmes pouvant être causés par le nombre irrégulier de semaines dans une année. Nous utiliserons des décalages pour obtenir une intelligence temporelle précise dans DAX.
Nous avons un scénario intéressant pour vous aujourd'hui. Cela est apparu plusieurs fois récemment sur le forum LuckyTemplates. Ce que les gens voulaient faire, c'était prendre un visuel (qui pouvait être un graphique linéaire ou un graphique à barres) et le faire varier dynamiquement sur la date de début. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Dans ce cas, nous avons utilisé le même ensemble de données que celui que nous avons utilisé pour le prix au comptant moyen du baril de pétrole . Au lieu de toujours commencer au début de janvier, nous voulions pouvoir cliquer sur le visuel, le changer pour une date de début différente, mais toujours afficher une année de données.
Table des matières
Exemples de scénarios d'intelligence temporelle dans DAX
Il y a plusieurs raisons pour lesquelles vous pourriez vouloir faire cette technique. Vous pouvez l'utiliser si vous avez une métrique qui est constamment réajustée en termes de calcul. Vous souhaiterez peut-être afficher uniquement les données de la période du réajustement vers l'avant.
Une autre raison de l'utiliser est si vous souhaitez visualiser cela de manière animée. Cela prendra essentiellement vos données et les affichera dynamiquement une fois que vous aurez cliqué sur l'accès à la lecture.
Dans ce visuel, nous pouvons modifier la date de début mois par mois pour montrer comment elle change sur une période de 12 mois au fil du temps. Il s'agit d'un visuel intéressant et utile pour différentes analyses de rentabilisation, mais théoriquement, il représente également un certain nombre de problèmes clés liés à DAX et à la modélisation des données.
Passons à LuckyTemplates et examinons d'abord notre modèle de données. Il s'agit d'un modèle de données très simple avec une table de dates étendue et une table de prix au comptant liée aux dates.
Utilisation de décalages pour l'intelligence temporelle dans DAX
L'une des choses sur lesquelles nous travaillerons, ce sont les compensations . Les décalages dans la table de dates étendue sont calculés dynamiquement. Chaque fois que le rapport est actualisé ou ouvert, il passe par le code M. Par exemple, dans un décalage mensuel, il affecte le mois en cours avec 0, le mois précédent avec -1 et deux mois en arrière avec -2. En regardant vers l'avenir, il attribue le mois suivant +1, et pour deux mois à l'avenir +2.
Il s'agit d'un concept simple mais incroyablement puissant lorsque vous traitez de l'intelligence temporelle dans DAX et que vous travaillez avec des mois , des trimestres et des semaines . Si vous n'utilisez pas de décalage, cela crée parfois une certaine complexité dans vos calculs.
Utiliser des décalages signifie utiliser une série continue de nombres où reculer d'un mois est toujours -1 et avancer d'un mois est toujours +1, quel que soit l'endroit de l'année où vous vous trouvez.
Implémentation de la stratégie du canard en caoutchouc pour l'intelligence temporelle dans DAX
Dans le passé, j'ai parlé de l'esquive en caoutchouc , qui consiste à verbaliser votre stratégie à haute voix avant de commencer à écrire votre DAX.
Je réfléchis à haute voix à la manière dont je vais gérer cela dans un contexte mensuel en utilisant l'intelligence temporelle dans DAX. Je commencerais quelque chose en fonction de l'année et du mois sélectionnés, et je sélectionnerais ceux qui utilisent une table déconnectée, car si vous y réfléchissez, toutes les autres sélections impliqueront des années croisées (à l'exception de janvier).
Disons que nous voulons 12 mois à partir de mars, nous nous retrouverons avec au moins deux mois l'année suivante. Si nous utilisons un slicer connecté, nous ne pouvons filtrer que cette année-là et ne pourrons pas filtrer l'année suivante.
Récolter les compensations à partir de la date de début
Faisons cela avec une table connectée pour le mois et l'année. Tout d'abord, nous devons récolter le premier décalage qui traite de la date de début.
Et puis nous voulons avancer ce décalage de 12 mois, puis ne regarder que les dates qui se trouvent dans cet ensemble de décalages. Laissez-moi vous montrer à quoi cela ressemble dans DAX.
Calcul de la plage mensuelle
Il s'agit de notre mesure pour Within Range Monthly , où nous sélectionnons notre année (que nous avons récoltée à partir de la table des années déconnectées) et notre mois (que nous avons récolté à partir de la table des mois déconnectés).
Nous avons également cet autre paramètre où s'il n'y a pas de sélection faite, il sera par défaut à janvier. Ce paramètre sert principalement à des fins de débogage.
Calcul des décalages des mois de début et de fin
Examinons le décalage du mois de départ en calculant le décalage MAX. Nous supprimons tous les filtres du tableau des dates et filtrons jusqu'au mois et à l'année sélectionnés. Pour chaque mois, il ne devrait y avoir qu'un seul décalage correspondant à ce mois et à cette année.
À partir de ce point, nous pouvons prendre le décalage du mois de fin , qui est juste le décalage du mois de départ + 11 mois.
Ensuite, nous examinons chaque date sélectionnée et déterminons si elle se situe dans le décalage du mois initial et le décalage du mois de fin. s'il tombe dans cette période, nous lui donnons un 1 et sinon, nous lui donnons un 0.
Si nous revenons à la vue mensuelle dans notre visuel, nous pouvons voir le visuel Within Range que nous avons défini comme égal à un. Donc, il ne montre que ces mois dans le décalage du début à la fin. Par exemple, si nous cliquons sur février, nous voyons février à janvier.
Calcul de la plage hebdomadaire
Voyons à quoi cela ressemble d'un point de vue hebdomadaire. Le visuel commence bien au début et va de la semaine 1 à la semaine 52. Jusqu'ici, tout va bien.
Mais si on clique sur les autres années dans le trancheur d'année, on peut voir la 52e semaine alors que certains ont une 53e semaine, ce qui pose beaucoup de problèmes. Vous pouvez voir sur cet exemple que le problème commence à se manifester.
Nous avons une période de départ de l'année 2020 et de la semaine 15 , mais la période de fin est l'année 2021 et la semaine 13 au lieu de l'année 2021 et de la semaine 14 .
Si nous revenons à la semaine 1, nous pouvons voir que cela commence bien, mais se termine à la semaine 52. Si nous regardons le calcul de la semaine 53 ici, le nombre maximum de semaines pour 2020 et 2021 est de 53 semaines. Cela ne fonctionnera pas pour la granularité hebdomadaire.
Voyons ce que nous pouvons faire pour que cela fonctionne. Nous devons corriger le calcul DAX ici même dans cette partie :
En effet, dans certains cas, 51 est correct lorsqu'il n'y a que 52 semaines dans une année, mais pour l'année où il y a 53 semaines, cette dernière période sera supprimée. C'est exactement ce que nous avons vu dans le visuel dynamique pendant des semaines, où le calcul a supprimé cette dernière période des années 2020 et 2021.
Pour résoudre ce problème, nous passons à la mesure Within Range Weekly Wrong , qui semble en fait plus simple que la mesure précédente. Nous avions une mesure de décalage de départ et calculé le décalage maximum. Ensuite, nous avons supprimé le filtre des dates, puis imposé le filtre sur la semaine et l'année sélectionnées en supposant que cela conduirait au décalage correct.
Mais cela ne fonctionne pas car peu importe que vous utilisiez un décalage maximum ou un décalage minimum. Tout ce que nous faisons est d'envelopper un agrégateur afin de ne pas mettre une colonne nue dans une instruction CALCULATE.
Mais si nous revenons ici à l' ISO WeekNumber , nous pouvons voir qu'une année et un numéro de semaine ne déterminent pas de manière unique un décalage hebdomadaire dans cette première période.
J'ai trouvé un moyen infaillible de le faire. Vous pouvez utiliser MIN, mais il est plus logique de créer cette mesure Week1 Offset . Afin d'obtenir le décalage de la semaine 1, nous avons affaire à la semaine 2 car elle n'est jamais divisée. Qu'il y ait 52 ou 53 semaines dans l'année, la semaine 2 reste intacte.
Dans ce calcul, nous filtrons jusqu'à la semaine 2 pour obtenir le décalage. Et puis une fois que nous obtenons ce décalage de la semaine 2, nous en soustrayons juste un. Cela nous donnera sans ambiguïté le décalage de la semaine 1. Cela finit par résoudre notre problème.
Calcul hebdomadaire de l'intérieur de la plage
Et puis nous revenons à notre mesure hebdomadaire dans la plage et écrivons une instruction IF où si le nombre de récoltes est pour la semaine 1, nous calculons le décalage de la semaine 1. Si ce n'est pas la semaine 1, nous calculons simplement le décalage de la semaine de départ comme nous l'avons fait dans le calcul mensuel précédent.
Et puis le décalage de la semaine de fin sera le décalage de la semaine de début + le numéro de semaine maximum qui pourrait être 52 ou 53. Ensuite, nous soustrayons simplement 1 afin de ne pas compter deux fois le décalage de départ.
Nous pouvons faire la même construction que celle que nous avons utilisée pour la plage mensuelle pour filtrer les semaines, où tout ce qui se situe entre le début et le décalage de fin obtient un 1, et tout ce qui n'obtient pas un 0.
Ensuite, nous allons placer la mesure hebdomadaire dans la plage dans le volet de filtre. Tout vérifie et semble parfaitement correct.
Nous pouvons cliquer sur l'axe de lecture et exécuter la granularité de la semaine. Nous pouvons voir qu'il fonctionne correctement, tout comme il l'a fait dans le contexte du mois.
Conclusion
Il s'agit d'une plongée assez profonde dans l'intelligence temporelle dans DAX, où nous avons discuté de la manière dont nous pouvons résoudre certains des problèmes liés aux numéros de semaine. J'espère que vous avez trouvé ce didacticiel utile et qu'il vous a fourni des outils supplémentaires dans votre boîte à outils lorsque vous faites face à une situation de semaine problématique.
Si vous avez apprécié le contenu couvert dans ce didacticiel particulier, n'oubliez pas de 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, tous dédiés à l'amélioration de 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