Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
La récupération des valeurs de la période précédente dans LuckyTemplates est une tâche courante, mais la récupération des valeurs de la semaine précédente nécessite une attention particulière. Dans ce didacticiel, je vais discuter de deux méthodes simples et polyvalentes pour obtenir les valeurs de la semaine précédente de LuckyTemplates qui peuvent être des ajouts utiles à votre boîte à outils - l'une utilisant DAX et l'autre utilisant Power Query. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Ce tutoriel est venu d'une question que j'ai reçue d'un membre de LuckyTemplates. Le député a demandé quelle était la façon la plus facile de déterminer le nombre de la semaine précédente. C'est une question courante que je rencontre. Cela semble assez simple, mais plus vous y creusez, plus vous vous rendez compte qu'il y a beaucoup à traiter.
Table des matières
Valeurs de la semaine précédente dans LuckyTemplates : le problème
Si nous regardons le nombre de semaines, nous avons 52 semaines ; multipliez cela par sept jours (une semaine) et cela donne 364. Ainsi, chaque année, il y a un jour supplémentaire, puis pour les années bissextiles, il y a deux jours supplémentaires. Ces un ou deux jours supplémentaires finissent par causer beaucoup de problèmes.
Créons une mesure à partir de notre table Dates. Nous l'appellerons MAX Semaine # (numéro). Dans cette analyse, nous utilisons le tableau des dates étendues de LuckyTemplates ; cela a ISO Weeknumber , ce qui est très utile. Maintenant, prenons le MAX du numéro de semaine ISO.
Maintenant, prenons une table et supprimons Year ainsi que notre MAX Week # . Cet ensemble de données a 10 ans de données, et nous voyons que les deux premières années ont 52 semaines. Ensuite, nous avons deux ans avec 53 semaines, trois ans avec 52 semaines, puis deux ans avec 53 et un avec 52 semaines.
Il n'y a pas vraiment de modèle perceptible ici. Ce n'est pas facile de revenir en arrière et de prédire qu'une année vous allez avoir 52 semaines et l'autre année vous allez en avoir 53.
La prochaine chose à laquelle vous pourriez penser si vous êtes familiarisé avec les fonctions d'intelligence temporelle DAX est d'utiliser la fonction DATEADD , qui décale une plage de dates d'une période donnée. Il le fait très bien pour le jour, le mois, le trimestre et l'année, mais il n'inclut pas la semaine, nous devons donc trouver une autre façon de le faire.
Dans le tableau des dates étendues LuckyTemplates que nous utilisons, Melissa (l'un des experts de LuckyTemplates) a inclus une fonction appelée OFFSETS . Plongeons-nous dans cette fonction car elle est absolument essentielle pour résoudre ce problème du point de vue DAX.
En regardant la période actuelle (par exemple le 20 janvier qui est la période de création de ce tutoriel), ce que nous voyons est que offset est égal à zéro . La façon dont les décalages fonctionnent est que pour la période en cours, le décalage devient zéro.
La semaine précédant la semaine en cours est une semaine négative, deux semaines avant la semaine en cours est une semaine négative, et ainsi de suite. Et puis, ça avance à partir des nombres positifs; la semaine prochaine obtient alors un un, deux semaines obtient un deux, etc.
Chaque fois que vous ouvrez le rapport relatif à la date du jour, il calcule les décalages. C'est incroyablement puissant et maintenant je vais vous montrer à quel point il est facile de résoudre certains problèmes difficiles comme ce numéro de la semaine précédente de LuckyTemplates lorsque vous utilisez des décalages.
Obtention de LuckyTemplates la semaine précédente à l'aide de DAX
Créons une nouvelle mesure et appelons-la Previous Wk # . Nous allons commencer avec une variable ( SelWkOffset ), où nous allons juste faire une SELECTEDVALUE du WeekOffset . Donc, dans la ligne actuelle, il va dessiner ce WeekOffset et le mettre dans notre variable.
La variable suivante sera Result . C'est le résultat ultime que nous voulons et nous allons utiliser CALCULATE car nous allons changer de contexte.
Ensuite, nous voulons le numéro de semaine ISO MAX et cela va être soumis à ces conditions de filtre. Donc, nous allons supprimer tous les filtres sur la table Dates, et donc nous allons utiliser ALL ici. Si nous avions un trancheur de dates, nous voudrions peut-être utiliser ALLSELECTED , mais pour l'instant nous ne le faisons pas, nous allons donc simplement utiliser ALL pour supprimer le filtre de cette table Dates.
Et puis, nous dirons que WeekOffset sera égal à notre SelWkOffset moins un . C'est là que les OFFSETS deviennent si puissants. Vous ne pouvez pas utiliser Weeknumber moins un car cela se réinitialise chaque année. Mais parce que TOUS LES DÉCALAGES sont séquentiels, vous pouvez le traiter comme vous le feriez en trouvant l'année précédente et en soustrayant simplement un pour chaque année précédente. Et donc ce, ce décalage fonctionne exactement de la même manière qu'un nombre consécutif.
Nous pouvons maintenant prendre et fermer cette condition de filtre, fermer CALCULATE et simplement RETURN our Result .
Voyons maintenant comment fonctionne cette mesure. Dans le tableau ci-dessous, nous pouvons voir qu'il fait exactement ce que nous espérions. Dans la semaine 52 pour la première période de l'année suivante, la semaine précédente est 52. Et puis, elle recule d'une à chaque période, et ainsi de suite.
Maintenant, que faites-vous dans les cas où vous n'avez pas de décalage ?
Supposons que vous travaillez avec une table de dates d'entreprise provenant de votre entrepôt de données et qu'elle n'inclut pas ces décalages. Il y a une technique que je veux vous montrer dans Power Query. La première fois que je l'ai vu, c'était dans une entrée de blog d'Imke Feldmann.
Cette approche fonctionne très bien pour toutes les situations dans lesquelles vous pouvez ordonner la table par ordre croissant, et il n'est pas nécessaire qu'elle ait un décalage. Il n'a même pas besoin d'avoir un champ de date. Il pourrait s'agir d'un tout autre type de table. Tant qu'il est triable par ordre croissant, vous pouvez utiliser cette technique.
Faisons donc référence à cette table Dates Raw et nous l'appellerons Dates . Ensuite, nous nous assurons de trier cela par ordre croissant .
Ensuite, nous voulons regrouper par semaine . La raison en est que nous allons ajouter deux colonnes d'index. Lorsque nous ajoutons ces colonnes d'index, nous voulons qu'elles soient à la granularité de la semaine , et non à la granularité du jour.
Ensuite, nous voulons ajouter ces colonnes d'index. L'important ici est que le premier index que nous ajouterons sera un index basé sur 0. Et puis, nous allons ajouter un deuxième index qui est un index basé sur 1.
Ensuite, nous allons prendre cette colonne et fusionner une table en elle-même. Nous allons le fusionner en fonction des deux colonnes d'index différentes. Cela va nous donner un décalage dans les rangées.
Donc, si nous prenons cela et fusionnons le premier à l'index basé sur 0 avec l'index basé sur 1, il correspond à 521 sur 522 lignes. C'est exactement ce à quoi nous nous attendions car la deuxième table ne captera pas l'index zéro puisqu'elle commence à un.
Après cela, nous allons simplement développer cela correctement, en utilisant simplement le numéro de semaine ISO.
Cela nous donne notre numéro de la semaine précédente. Et maintenant, nous allons simplement étendre notre regroupement d'origine et supprimer le champ WeekEnding et le numéro de semaine ISO d'origine afin de ne pas dupliquer.
Si nous mettons cela dans un tableau, vous pouvez voir que c'est exactement les mêmes résultats qu'en utilisant la technique DAX. Cela fonctionne exactement comme notre mesure DAX, mais dans ce cas, nous n'avons pas eu besoin d'utiliser les décalages.
Conclusion
Ce sont deux manières différentes d'une manière très polyvalente de trouver le numéro de la semaine précédente. Dans la première technique, vous pouvez voir la puissance des décalages en faisant, ce qui serait autrement un calcul difficile, assez simple. La deuxième technique fonctionne exactement comme notre mesure DAX, mais dans ce cas, nous n'avons pas eu besoin d'utiliser les décalages.
J'espère que vous trouverez ce tutoriel utile. Vous pouvez regarder le didacticiel vidéo complet ci-dessous et consulter les liens connexes pour un contenu plus similaire.
Acclamations!
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