Convertir une durée texte en durée quantifiable

20 décembre 2023

(Écrit par un humain)

Dans le monde fascinant de la visualisation de données, transformer des informations complexes en données utilisables est un principe fondamental. Dans cet article nous allons aborder un cas fréquemment rencontré dans nos formations Power BI qui est la conversion des durées en format texte en durées quantifiables.

Pour illustrer ce processus nous allons prendre comme source de données le classement des 250 meilleurs films selon le site IMDB. L'objectif va être de récupérer les durées de chaque film, inscrites en format texte, et de les convertir en format durée pour pouvoir être compris et interprété dans Power BI.

Création de la colonne conditionnelle des heures

Ici la colonne qui nous intéresse est la colonne 5 qui contient les durées des films et première étape consiste à isoler le nombre d'heures pour chaque film.

La difficulté qui se présente est que certains films ont une durée inférieure à une heure ce qui exclut la possibilité de simplement fractionner la colonne par des espaces.

Pour résoudre ce problème nous créons une colonne conditionnelle nommée h pour heures. Si la colonne 5 ne contient pas la lettre "h" nous lui attribuons la valeur 0 sinon nous utilisons la fonction Text.Start() pour extraire le premier caractère de la colonne 5 qui correspond au nombre d'heures, avec en paramètre le nom de la colonne puis le nombre de caractères à récupérer. Cette méthode nous permet de décomposer efficacement la durée de chaque film en composants d'heures et de minutes.

Cependant Power Query interprète cet appel de fonction comme une chaine de caractères et remplit donc la colonne avec des Text.Start([Column5],1). Pour résoudre ce problème il suffit d'effacer les guillemets autour de l'appel de la fonction dans l'éditeur avancé.

Création de la colonne conditionnelle des minutes

Pour récupérer les minutes dans une nouvelle colonne nous allons reprendre la même démarche que pour les heures. Nous créons une nouvelle colonne conditionnelle que nous appelons m pour minute et nous indiquons dans la condition que si la lettre "m" n'apparaît pas dans la colonne 5 alors cette nouvelle colonne prend la valeur 00, il est important de mettre 2 zéros car contrairement aux heures les minutes doivent obligatoirement s'écrire avec 2 chiffres. Sinon, la colonne récupère les 3 derniers caractères grâce à la fonction Text.End(), avec là encore le nom de la colonne sur laquelle appliquer la fonction en premier paramètre et le nombre de caractères à récupérer en second.

Là encore il faut supprimer les guillemets dans l'éditeur avancé pour bien appliquer la fonction.

Création de la colonne personnalisée des secondes

Un autre aspect à considérer pour le format des durées est le nombre de secondes pour chaque film. Comme cette information n'est pas fournie dans la colonne 5 nous allons créer une colonne personnalisée nommée s pour secondes et nous la remplissons simplement de zéros.

Fusion des trois colonnes pour créer la colonne durée

Maintenant que nous disposons de nos 3 colonnes comprenant nos 3 informations nous allons retirer les "m" de la colonne m des minutes. Pour ce faire nous convertissons la colonne en type texte puis en faisant un clique droit sur la colonne nous cliquons sur la fonction Remplacer les valeurs et nous indiquons que nous voulons remplacer la lettre "m" par rien.

Ensuite, nous changeons le type de nos 3 colonnes pour qu'elles soient toutes de type nombre entier et enfin avec les 3 colonnes sélectionnées nous faisons un clic droit et nous sélectionnons la fonction Fusionner les colonnes. Nous choisissons pour cette nouvelle colonne le nom Durée et nous choisissons d'utiliser deux points comme séparateur entre les valeurs.

Enfin, nous n'avons plus qu'à passer cette nouvelle colonne au format durée et nous nous retrouvons avec une colonne au format durée qui correspond à la durée de chaque film de la liste.

Merci d'avoir lu cet article, vous pouvez retrouver nos vidéos explicatives sur Power BI sur notre chaîne YouTube ou en cliquant ici, nous abordons aussi ces pratiques durant nos formations Power BI.

Articles en relation

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram