Créer une table des temps

Dernière mise à jour le 11/04/2024
Temps de lecture : 5 minutes
  • Une table des temps est une étape nécessaire à la création de rapport Power BI ou faire des TCD élaborés.
  • C'est le seul moyen de concevoir des TCD avec des numéros de semaine ou faire des écarts entre l'année N et N-1.

Utilisation de Power Query

Power Query est un outil remarquable pour tout ce qui touche aux manipulations de données.

Nous allons créer une requête Power Query qui va créer la table des temps et toutes les colonnes qui décomposent les dates (l'année, le mois, les jours, les semaines)

Etape 1 : Ouvrir une requête vide

Nous allons commencer par ouvrir une requête vide

Menu de création dune requête vide

Etape 2 : Renommer la requête

Quand vous travaillez avec Power Query il est fortement recommandé de renommer chaque requête avec un nom qui l'identifie facilement. Ce travail est à faire le plus tôt possible dans la conception d'une requête par ne pas engendrer de problème ultérieur avec le modèle de données.

Renommer la requête Power Query

Etape 3 : Saisir les dates de débuts et de fin de la table des temps

  1. Dans la barre de formule, saisissez la première date de date de votre table des temps
Saisie de la première date de la tables des temps
  1. Puis cliquez sur le bouton Fx à gauche de la barre de formule
  2. Effacer toutes les informations qui ont été ajoutés dans la barre de formule (y compris le signe =)
  3. Ajouter la date de fin de votre table des temps
Saisie de la date de fin de la table des temps

Etape 4 : Renommer les 2 étapes

De nouveau, nous allons renommer les 2 étapes créées par un nom significatif. Pour les 2 étapes, faîtes un clic-droit sur le nom de l'étape et sélectionnez l'option Renommer.

Menu pour renommer une étape de Power Query

Seulement, pour la toute première étape, qui est toujours nommée Source, il n'est normalement pas possible de la renommer. Sauf si vous passez par l'éditeur avancé.

Menu Editeur avancé de Power Query

Et là, il vous suffit de remplacer Source par le nom que vous voulez.

Méthode pour renommer la première étape dans Power Query

Etape 5 : Création de la liste de dates

Maintenant, nous allons créer la liste des dates entre les 2 dates précédemment écrites (DateDébut et DateFin). Et pour cela, il y a une astuce.

Tout d'abord, une liste dans Power Query, ça s'écrit entre accolades { }

Ensuite, pour créer une liste entre 2 valeurs, il vous suffit d'écrire ces 2 valeurs séparées par 2 points (..). {1..10} génère une liste de valeur de 1 à 10 par exemple

Donc, pour créer nos listes de dates, il nous suffit d'écrire dans une nouvelle étape

= {Number.From(DateDébut)..Number.From(DateFin)}

L'instruction Number.From est nécessaire pour convertir les dates en valeurs numériques. Sans cela, il n'est pas possible de créer une liste avec la technique décrite ici.

Création dune liste de date avec Power Query

Etape 6 : Transformer la liste en table

Ce n'est pas très flagrant visuellement, mais la table de valeur n'existe pas encore. Il faut "officialiser" que la liste créée soit une table. Et pour cela il faut simplement cliquer sur l'icône Transformer > Vers la table

Menu Convertir en table

Etape 7 : Convertir en type date

Pour poursuivre, il faut indiquer que la liste de valeur numérique soit convertie en date.

  1. Cliquez sur l'icône 123ABC
  2. Sélectionnez le type Date
Changer le type de valeur en date

Etape 8 : Ajouter les éléments liés aux dates

Maintenant, le plus difficile a été effectué. Il ne reste plus rajouter les différents éléments constitutif d'une date. Par exemple, pour ajouter une colonne avec les années, il suffit de procéder de la façon suivante.

  1. Sélectionnez la colonne des dates
  2. Ajouter une colonne
  3. Sélectionnez le menu date
  4. Puis le sous-menu Année
  5. Et encore Année
Ajouter une colonne Année à partir dune date

Le résultat, c'est l'ajout d'une nouvelle colonne avec les années extraites de la colonne Date

Insertion dune colonne avec seulement les dates

Ensuite, il ne vous reste plus qu'à rejouer les mêmes manipulations pour les mois, les jours, les semaines, ...

Table des temps

Une fois que vous avez ajouter vos différentes colonnes, il ne vous reste plus qu'à charger le résultat dans Excel (Accueil > Fermer et charger)

Menu Fermer et Charger de Power Query
Table des temps

Code complet

Voici le code complet que vous pouvez utiliser dans vos modèles de données

let
DateDébut = #date(2020, 1, 1),
DateFin = #date(2020, 12, 31),
ListeDate = {Number.From(DateDébut)..Number.From(DateFin)},
#"Converti en table" = Table.FromList(ListeDate, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Colonnes renommées" = Table.RenameColumns(#"Converti en table",{{"Column1", "Date"}}),
#"Type modifié" = Table.TransformColumnTypes(#"Colonnes renommées",{{"Date", type date}}),
#"Année insérée" = Table.AddColumn(#"Type modifié", "Année", each Date.Year([Date]), Int64.Type),
#"Mois inséré" = Table.AddColumn(#"Année insérée", "Mois", each Date.Month([Date]), Int64.Type),
#"Nom du mois inséré" = Table.AddColumn(#"Mois inséré", "Nom du mois", each Date.MonthName([Date]), type text),
#"Trimestre inséré" = Table.AddColumn(#"Nom du mois inséré", "Trimestre", each Date.QuarterOfYear([Date]), Int64.Type),
#"Semaine de l'année insérée" = Table.AddColumn(#"Trimestre inséré", "Semaine de l'année", each Date.WeekOfYear([Date]), Int64.Type),
#"Jour inséré" = Table.AddColumn(#"Semaine de l'année insérée", "Jour", each Date.Day([Date]), Int64.Type),
#"Jour de la semaine inséré" = Table.AddColumn(#"Jour inséré", "Jour de la semaine", each Date.DayOfWeek([Date], Day.Monday), Int64.Type),
#"Ajouté à la colonne" = Table.TransformColumns(#"Jour de la semaine inséré", {{"Jour de la semaine", each _ + 1, type number}}),
#"Nom du jour inséré" = Table.AddColumn(#"Ajouté à la colonne", "Nom du jour", each Date.DayOfWeekName([Date]), type text)
in
#"Nom du jour inséré"

1 Comment

  1. Ribaud de Gineste
    25/08/2023 @ 11:14

    Bonjour,
    Super travail très pédagogique ; j'aurai aimé trouvé la notion de semestre indispensable pour les bilans et éventuellement les jours fériés pour compter les coûts...
    Merci beaucoup

    Reply

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Microsoft MVP 2024

Créer une table des temps

Reading time: 5 minutes
Dernière mise à jour le 11/04/2024
  • Une table des temps est une étape nécessaire à la création de rapport Power BI ou faire des TCD élaborés.
  • C'est le seul moyen de concevoir des TCD avec des numéros de semaine ou faire des écarts entre l'année N et N-1.

Utilisation de Power Query

Power Query est un outil remarquable pour tout ce qui touche aux manipulations de données.

Nous allons créer une requête Power Query qui va créer la table des temps et toutes les colonnes qui décomposent les dates (l'année, le mois, les jours, les semaines)

Etape 1 : Ouvrir une requête vide

Nous allons commencer par ouvrir une requête vide

Menu de création dune requête vide

Etape 2 : Renommer la requête

Quand vous travaillez avec Power Query il est fortement recommandé de renommer chaque requête avec un nom qui l'identifie facilement. Ce travail est à faire le plus tôt possible dans la conception d'une requête par ne pas engendrer de problème ultérieur avec le modèle de données.

Renommer la requête Power Query

Etape 3 : Saisir les dates de débuts et de fin de la table des temps

  1. Dans la barre de formule, saisissez la première date de date de votre table des temps
Saisie de la première date de la tables des temps
  1. Puis cliquez sur le bouton Fx à gauche de la barre de formule
  2. Effacer toutes les informations qui ont été ajoutés dans la barre de formule (y compris le signe =)
  3. Ajouter la date de fin de votre table des temps
Saisie de la date de fin de la table des temps

Etape 4 : Renommer les 2 étapes

De nouveau, nous allons renommer les 2 étapes créées par un nom significatif. Pour les 2 étapes, faîtes un clic-droit sur le nom de l'étape et sélectionnez l'option Renommer.

Menu pour renommer une étape de Power Query

Seulement, pour la toute première étape, qui est toujours nommée Source, il n'est normalement pas possible de la renommer. Sauf si vous passez par l'éditeur avancé.

Menu Editeur avancé de Power Query

Et là, il vous suffit de remplacer Source par le nom que vous voulez.

Méthode pour renommer la première étape dans Power Query

Etape 5 : Création de la liste de dates

Maintenant, nous allons créer la liste des dates entre les 2 dates précédemment écrites (DateDébut et DateFin). Et pour cela, il y a une astuce.

Tout d'abord, une liste dans Power Query, ça s'écrit entre accolades { }

Ensuite, pour créer une liste entre 2 valeurs, il vous suffit d'écrire ces 2 valeurs séparées par 2 points (..). {1..10} génère une liste de valeur de 1 à 10 par exemple

Donc, pour créer nos listes de dates, il nous suffit d'écrire dans une nouvelle étape

= {Number.From(DateDébut)..Number.From(DateFin)}

L'instruction Number.From est nécessaire pour convertir les dates en valeurs numériques. Sans cela, il n'est pas possible de créer une liste avec la technique décrite ici.

Création dune liste de date avec Power Query

Etape 6 : Transformer la liste en table

Ce n'est pas très flagrant visuellement, mais la table de valeur n'existe pas encore. Il faut "officialiser" que la liste créée soit une table. Et pour cela il faut simplement cliquer sur l'icône Transformer > Vers la table

Menu Convertir en table

Etape 7 : Convertir en type date

Pour poursuivre, il faut indiquer que la liste de valeur numérique soit convertie en date.

  1. Cliquez sur l'icône 123ABC
  2. Sélectionnez le type Date
Changer le type de valeur en date

Etape 8 : Ajouter les éléments liés aux dates

Maintenant, le plus difficile a été effectué. Il ne reste plus rajouter les différents éléments constitutif d'une date. Par exemple, pour ajouter une colonne avec les années, il suffit de procéder de la façon suivante.

  1. Sélectionnez la colonne des dates
  2. Ajouter une colonne
  3. Sélectionnez le menu date
  4. Puis le sous-menu Année
  5. Et encore Année
Ajouter une colonne Année à partir dune date

Le résultat, c'est l'ajout d'une nouvelle colonne avec les années extraites de la colonne Date

Insertion dune colonne avec seulement les dates

Ensuite, il ne vous reste plus qu'à rejouer les mêmes manipulations pour les mois, les jours, les semaines, ...

Table des temps

Une fois que vous avez ajouter vos différentes colonnes, il ne vous reste plus qu'à charger le résultat dans Excel (Accueil > Fermer et charger)

Menu Fermer et Charger de Power Query
Table des temps

Code complet

Voici le code complet que vous pouvez utiliser dans vos modèles de données

let
DateDébut = #date(2020, 1, 1),
DateFin = #date(2020, 12, 31),
ListeDate = {Number.From(DateDébut)..Number.From(DateFin)},
#"Converti en table" = Table.FromList(ListeDate, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Colonnes renommées" = Table.RenameColumns(#"Converti en table",{{"Column1", "Date"}}),
#"Type modifié" = Table.TransformColumnTypes(#"Colonnes renommées",{{"Date", type date}}),
#"Année insérée" = Table.AddColumn(#"Type modifié", "Année", each Date.Year([Date]), Int64.Type),
#"Mois inséré" = Table.AddColumn(#"Année insérée", "Mois", each Date.Month([Date]), Int64.Type),
#"Nom du mois inséré" = Table.AddColumn(#"Mois inséré", "Nom du mois", each Date.MonthName([Date]), type text),
#"Trimestre inséré" = Table.AddColumn(#"Nom du mois inséré", "Trimestre", each Date.QuarterOfYear([Date]), Int64.Type),
#"Semaine de l'année insérée" = Table.AddColumn(#"Trimestre inséré", "Semaine de l'année", each Date.WeekOfYear([Date]), Int64.Type),
#"Jour inséré" = Table.AddColumn(#"Semaine de l'année insérée", "Jour", each Date.Day([Date]), Int64.Type),
#"Jour de la semaine inséré" = Table.AddColumn(#"Jour inséré", "Jour de la semaine", each Date.DayOfWeek([Date], Day.Monday), Int64.Type),
#"Ajouté à la colonne" = Table.TransformColumns(#"Jour de la semaine inséré", {{"Jour de la semaine", each _ + 1, type number}}),
#"Nom du jour inséré" = Table.AddColumn(#"Ajouté à la colonne", "Nom du jour", each Date.DayOfWeekName([Date]), type text)
in
#"Nom du jour inséré"

1 Comment

  1. Ribaud de Gineste
    25/08/2023 @ 11:14

    Bonjour,
    Super travail très pédagogique ; j'aurai aimé trouvé la notion de semestre indispensable pour les bilans et éventuellement les jours fériés pour compter les coûts...
    Merci beaucoup

    Reply

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.