Power Query : 3 fonctions pour manipuler les heures

Publié le 27 juillet 2020
par Sophie Marchand M.Sc., CPA, CGA, MVP
Power Query Colonne Personnalisée

Power Query : 3 fonctions pour manipuler les heures

L’article suivant est inspiré d’une question posée récemment sur notre forum. Un usager de Power Query se demandait comment convertir ses données de type texte en heures. Cet article vise à expliquer 3 fonctions d’heures dans Power Query, qui vous seront très utiles.

 

Données de départ en heures dans Power Query

L’usager travaillait avec des données d’heures à 3 ou 4 caractères, comme celles présentées ci-dessous. À noter que nous avons ici importé ces données dans Power Query et nous les avons converties en nombres entiers.

Heures départ

 

Si toutes les données présentaient 4 chiffres, il serait possible d’extraire les 2 premiers caractères pour reconstituer les heures et les 2 derniers caractères pour reconstituer les minutes. La difficulté ici réside donc dans le fait que les données présentent soit 3 chiffres, soit 4 chiffres.

 

Appliquer des fonctions Power Query standards

Pour résoudre cette problématique, nous pouvons utiliser les fonctions “standards” Diviser (par entier) et Modulo dans une nouvelle colonne (menu Ajouter une colonne, basée sur la colonne Heures).

Diviser par entier et modulo

 

Diviser par entier

D’abord, on ajoutera un colonne pour reconstituer les heures, en divisant le nombre à 3 ou 4 chiffres par 100 et en retenant uniquement les entiers. C’est ce que signifier Diviser par entier. Dans le premier cas, une division par 100 procurera un résultat de 22.15 et on retiendra uniquement la portion entière, donc 22. Dans le deuxième cas, une division par 100 procurera un résultat de 8.20 et on retiendra uniquement la portion entière, donc 8. Autrement dit, cette division par entier nous permettra de récupérer le nombre d’heures.

Diviser par entier

Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel.

Appliquer une fonction modulo

En appliquant un modulo de 100, on va récupérer la portion restant de chacune des divisions précédentes, donc 15 dans le premier cas et 20 dans le deuxième cas. Pour en savoir plus sur la fonction Modulo, vous pouvez consulter notre article Excel : Connaissez-vous la fonction MOD() ?

Diviser par modulo

 

Reconstituer des heures avec la fonction d’heures #time dans Power Query

Pour reconstituer les heures, nous pourrons utiliser la fonction #time, qui requiert 3 paramètres soit le nombre d’heures, le nombre de minutes et le nombre de secondes. Ici, le nombre de secondes sera de 0.

Reconstitution heures

 

Convertir le type de données

Pour terminer, il faudra s’assurer d’appliquer un type de données “heures” et le tour est joué.

 

 


Fichier d’accompagnement

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

 

Formation complémentaire

Afin d’approfondir vos connaissances avec Power Query, nous vous recommandons de suivre notre formation Excel – Introduction à Power Query et au langage M.

 

Voici quelques commentaires d’apprenants ayant suivi la formation en ligne Excel – Introduction à Power Query et au langage M :

Le CFO masqué - Commentaires formation - Introduction à Power Query et au langage M
CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

4 réflexions sur “Power Query : 3 fonctions pour manipuler les heures”

  1. Dans le cas présent, il serait facile d’avoir toujours 4 caractères en format Texte.
    Il suffit d’ajouter une colonne avec la formule suivante: Text.End(“0” & [Heures],4)

    1. Bonjour Serge,

      En effet, on pourrait utiliser la fonction que vous suggérez ou bien encore la fonction Text.PadStart() mais le problème serait ensuite de récupérer les 2 premiers caractères de cette expression. Même si les deux premiers caratères afficheraient 08 dans le deuxième cas, Power Query retourne quand même 82. C’est pourquoi j’aime bien les fonctions Diviser par entier et Modulo.

      Au plaisir,

      Sophie

  2. Bonjour,

    Je rencontre une difficulté avec une base de données que je souhaite utiliser dans Power Query.
    Je m’explique :
    J’ai ce format de temps et je n’arrive pas à le mettre soit en total secondes soit en 00:00:00
    1 heure 23 minutes 32 secondes
    13 secondes
    1 seconde
    1 minute
    2 heures 1 minute
    J’ai essayé de plusieurs façons mais en vain (fractionner/remplacer etc).

    Auriez-vous une solution ?

    Cordialement

Laisser un commentaire

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

Scroll to Top