La création de la colonne Semaine : quelle norme ?

Proposé par André Meyer

13 novembre 2019

Data club | Daxologie

création de table | modèle de données | semaine | time intelligence

Restez à l'écoute, abonnez-vous à la newsletter (2 fois / mois)

3 + 15 =

Les normes de calcul de la semaine

Deux systèmes de calcul du numéro de semaine co-existent (dans Power BI ou ailleurs) : pour le calendrier grégorien, la semaine 1 commence le premier janvier, et se termine le premier dimanche ou le premier lundi de l’année (respectivement WEEKNUM([Date] ;1) ou WEEKNUM([Date] ;2) en DAX). C’est le système utilisé aux USA notamment.

L’autre système, largement utilisé en Europe, « est un système de calendrier faisant partie de la norme d’horodatage ISO 8601. Le système est principalement utilisé par les gouvernements et entreprises pour baser également les années comptables et fiscales et la planification de projets à cycles hebdomadaires de travail, ainsi que pour le paiement des salaires ou des loyers (quand ceux-ci sont versés hebdomadairement) » (Wikipédia). Dans cette norme, la première semaine de l’année est celle contenant 4 jours au moins. D’où l’existence d’un décalage entre les deux calendriers : dans le premier, une semaine 53, d’une durée comprise entre 1 et 6 jours, va s’intercaler en fin d’année (le 31 décembre 2018 fait donc partie de la semaine 201853) ; dans le second, la semaine 1 peut débuter dès les derniers jours de l’année précédente (le 31 décembre 2018 fait donc partie de la semaine 201901).

Une différence de numérotation

Le calcul de la semaine en norme ISO 8601 : un paramètre caché

C’est, je crois, Gerhard Brueckl, dans son blog, qui signale dès 2012 l’existence d’un paramètre caché pour la fonction WEEKNUM (http://blog.gbrueckl.at/2012/04/iso-8601-week-in-dax/) : en effet, WEEKNUM([Date] ;21) renvoie directement le numéro de semaine dans la norme ISO.

Par convention, cette semaine est notée W suivi du numéro de semaine :

"W" & FORMAT(WEEKNUM([Date];21);"00")

Mais comme le montre l’image ci-dessus, l’année ISO peut également varier : le 31 décembre 2018 appartient à 2018-S53 et à 2019-W01. Gerhard Brueckl propose donc le calcul suivant pour la colonne Année_ ISO :

Que j’adapte en introduisant des variables (pour optimiser le script) et en complétant avec le numéro de semaine (selon la norme officielle) :

Cette colonne va s’avérer particulièrement importante pour le calcul des cumuls hebdomadaires, comme nous le verrons dans le prochain billet.

Un nouveau script pour la table Datum

Je vous propose donc un nouveau script pour la table, que vous pouvez afficher ICI.

La table filtrée sur 2018 et 2019 semaine W01 et W52

Articles associés :

Time Intelligence : les bases fondamentales des calculs cumulatifs

Time Intelligence : les bases fondamentales des calculs cumulatifs

Power BI offre de nombreuses fonctions de Time Intelligence (« analyse historique », « analyse dans le temps » ?) toutes prêtes à l’emploi. Des « syntax sugars » comme disent les anglophones. Mais encore faut-il comprendre comment elles fonctionnent, et savoir revenir aux fondamentaux de ce type d’analyse. C’est ce que nous allons voir dans ce post, avec les sommes cumulatives et le cas du cumul hebdomadaire, que Power BI n’a pas prévu

Les paramètres dans Power Query et dans les rapports (2)

Les paramètres dans Power Query et dans les rapports (2)

Suite du dossier consacré aux paramètres : cette fois-ci, j’évoque les paramètres-filtres et les autres modifications du code de la requête. Les paramètres-filtres nous donneront l’occasion de voir la génération d’une liste de valeurs pour le paramètre

Les paramètres dans Power Query et dans les rapports (1)

Les paramètres dans Power Query et dans les rapports (1)

Modifier simplement la requête Power Query, changer facilement de source, de filtre, mais aussi proposer à l’utilisateur de faire varier les calculs des mesures, et même la structure d’un visuel, – c’est tout cela que permettent de réaliser les paramètres. Tour d’horizon en trois parties.

0 commentaires

Trackbacks/Pingbacks

  1. Une question de temps (1) : ajouter la table du temps - Daxone - […] (Remarque : 13 novembre 2019, en complément de cet article, mise à jour du script de création de la…
  2. Time Intelligence : les bases fondamentales des calculs cumulatifs - Daxone - […] Année_Semaine_ISO, dont nous avons vu la mise en place dans le billet consacré à la semaine (ICI). En effet,…

Soumettre un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *