Suite à la publication d’un article concernant la fonction pour grouper des données dans Power BI, une personne demandait si c’était possible de grouper les données par semaine en utilisant le jeudi comme début de semaine.
Dans ce cas, la fonction de regroupement, indiqué dans l’article mentionné, n’est pas vraiment indiquée. Je suggère plutôt d’utiliser une table de dates pour arriver au résultat souhaité.
Maintenant, comment faire pour grouper des dates avec des semaines débutant le jeudi ?
Création de la table de dates
Premièrement, vous devriez toujours avoir une table de dates dans vos modèles de données. Pour ma part, je préfère construite cette table dans Power Query au lieu d’utiliser une fonction DAX (CALENDAR ou CALENDARAUTO).
En effet, il est plus facile d’ajouter différents éléments personnalisés à notre table dans Power Query. C’est le cas pour avoir des données groupées par semaine débutant le jeudi.
Il y a différentes méthodes pour créer une table de dates dans Power Query. Dans le cas présent, je vais utiliser la fonction List.Dates.
Il faut passer dans cette fonction 3 paramètres :
- une date de début
- un nombre d’occurrences
- un pas à utiliser pour chaque changement de lignes
Pour indiquer la date de début, idéalement l’on utiliserait la date minimale de notre table de fait, mais pour y aller simplement ici, je vais utiliser la fonction #date(2023,1,1) pour identifier la date du 1er janvier 2023.
Pour le nombre d’occurrences, je vais indiquer 90 (mais encore une fois, il serait possible d’aller chercher la date maximale de notre table de fait afin de calculer le nombre d’occurences.)
Finalement comme je veux une table de dates avec une ligne par journée, je vais utiliser la fonction #duration(1,0,0,0). Les 4 paramètres de #duration étant respectivement : jour, heure, minute, seconde.
Ensuite, pour ajouter des colonnes à la table de dates, il faut modifier la liste en table. Pour ce fait, il faut aller dans le menu Outils liste, puis sélectionner l’option Vers la table. Ensuite, il faut changer le format de notre colonne pour mettre un type de donnée date.
Ajouter différents éléments à notre table de dates
On pourra maintenant choisir les différentes colonnes à ajouter à notre table de dates qui nous serviront pour faire différentes analyses par période : une colonne année, mois, trimestre, semaine, etc.
Sachez que lorsque vous sélectionnez votre colonne de dates, vous avez la possibilité d’ajouter plusieurs colonnes relatives à des périodes. Il faut aller dans le menu Ajouter une colonne et sélectionner dans le menu Date l’option qui nous convient.
1. Ajouter le nom du jour
Commençons par ajouter le nom du jour, ce qui nous permettra de vérifier que notre début de semaine va bien concorder avec le jeudi.
Pour se faire, il faut aller dans le menu Jour et choisir Nom du jour.
2. Ajouter le numéro de la semaine
Ajoutons ensuite le numéro de la semaine correspondant à chacune des dates.
Toujours par le menu Jour, sélectionner l’option Jour de la semaine.
Note : il ne faut pas oublier de sélectionner la colonne date avant chacun des ajouts de colonnes, sinon, le menu Date sera grisé et non disponible.
Voici le résultat à ce stade-ci :
Remarquez que par défaut, le premier jour de la semaine (Jour de la semaine = 0) est le dimanche. Pour y remédier, il faut modifier le code M de cette étape comme ceci.
Code M original :
Il faut aller modifier la fonction Date.DayOfWeek et ajouter un 2e paramètre qui est optionnel et qui indique quelle journée sera considérée comme le 1er jour de la semaine.
Nous avons vu dans le résultat de l’étape précédente que le jeudi était considéré comme 4, c’est donc ce que l’on insère comme 2e paramètre. À noter que vous pourriez aussi utiliser la fonction Day.Thursday qui serait l’équivalent d’utiliser un 4.
3. Ajouter la date de début
Finalement, ajoutons la date de début de semaine en sélectionnant la colonne Date de nouveau, puis dans le menu Date, Semaine, puis Début de semaine.
Nous avons maintenant la même situation qui se produit, la fonction Date.StartOfWeek utilise par défaut le dimanche comme première journée de la semaine. Vous aurez compris qu’il faut faire le même ajustement.
Le code M par défaut :
En ajoutant un 2e paramètre (4) à la fonction Date.StartOfWeek
Voici le résultat final dans Power Query :
En utilisant la colonne Début de semaine de la table de dates dans les visuels, l’on pourra grouper les données par semaine. À vous d’ajuster le tout pour le début de semaine qui vous convient.
Voici deux exemples de visuels que l’on pourrait créer:
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Vous devez manipuler et analyser beaucoup de données et êtes à la recherche d’un outil BI (Business Intelligence) performant, en mode libre-service ? Suivez la formation Power BI – Niveau 1.
Cet article est super utile. je vais m’en servir. Merci.
Cependant il vise la création plutôt que le regroupement dont la procedure manque à la fin selon moi.
Merci pour les excellents aeticles qui nous aident à améliorer nos compétences !
Merci Jacques pour votre commentaire.
J’ai ajouté 2 captures d’écrans pour montrer les éléments à placer dans les axes des 2 visuels. En espérant que ça vous aide.
Au plaisir,
Kim