Obtenir les valeurs de la semaine précédente de LuckyTemplates à laide de DAX et de Power Query

Obtenir les valeurs de la semaine précédente de LuckyTemplates à laide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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 .

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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 .

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

Après cela, nous allons simplement développer cela correctement, en utilisant simplement le numéro de semaine ISO.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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.

Obtenir les valeurs de la semaine précédente de LuckyTemplates à l'aide de DAX et de Power Query

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!


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

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.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

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.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

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.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

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.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

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.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

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.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

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.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

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.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir