Power Query : 3 fonctions pour manipuler les heures

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

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 :

Excel – 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 *

Retour en haut