Calculer la durée de mon cours vidéo avec Power Query !


PowerQuery et l’analyse de dossiers

Je réalise en ce moment un cours vidéo sur PowerPivot avec le logiciel Camtasia et je stocke tous mes roughs d’enregistrement dans des dossiers en fonction du chapitre. Ces fichiers ont l’extension camrec.

J’ai remarqué que 300 Ko correspondent globalement à 1 seconde d’enregistrement.

Je souhaiterais calculer mes heures d’enregistrement par chapitre, en fait par dossier.

Je vais utiliser PowerQuery et PowerPivot, et en quelques minutes j’obtiens mon résultat.

A vous de jouer!

Je clique sur l’onglet POWERQUERY, puis sur le menu A partir d’un Fichier et je sélectionne Depuis le Dossier

Puis je clique sur parcourir et je sélectionne mon dossier parent

Et quand je valide j’obtiens le résultat suivant, c’est-à-dire la liste des fichiers de mes dossiers et sous-dossiers.

Je repère la colonne Attribute qui contient le mot Record dans toutes les lignes, je clique sur la double flèche au niveau de l’entête et un menu s’ouvre ou je peux sélectionner des informations complémentaires sur mes fichiers notamment la taille (size ), et je valide.

On nettoie

Je ne garde que les Extension camrec qui correspondent à mes roughs d’enregistrement, il suffit de cliquer sur le petit triangle dans l’entête de colonne et dans la liste de choix qui apparait de sélectionner uniquement camrec.

Ensuite je supprime toutes les colonnes qui ne m’intéressent pas, il suffit de cliquer sur l’entête de colonne et de sélectionner supprimer dans le menu déroulant

Ensuite je fais un clic droit sur l’entête de colonne FolderPath, et je sélectionne dans le menu déroulant Remplacer valeur,

Dans la fenêtre qui s’ouvre, je saisis dans la cellule Valeur à rechercher le début du chemin de mes dossiers, la partie commune à tous les fichiers et je vais remplacer par rien, comme cela je ne garde que la partie significative.

Ensuite je clique droit dans une entête de colonne et je sélectionne Insérer une colonne personnalisée, une fenêtre s’ouvre ou je tape

=[Duree]/300000/86400

Et je la nomme DureeFinale.

Explication de la formule

Je divise la taille de mes fichiers qui sont dans la colonne Durée ( que j’ai renommée auparavant) par 300000 pour obtenir la durée en secondes puis je divise par 86400 ( 60s x 60s x 24 heures ). Cette dernière opération transforme ma durée en une proportion d’une journée (24 heures) ce qui me permettra d’afficher ce résultat simplement en utilisant le format hh:mm:ss sous Excel.

Ensuite je coche dans paramètres d’une requête – charger dans le modèle de données et je clique sur le menu Appliquer et Fermer, et en allant dans le modèle de données PowerPivot, j’obtiens cela.

Je sélectionne la colonne DureeFinale et je la transforme en données numérique, elle a été importée sous forme de texte.

Ensuite je clique sur créer un Tableau Croisé Dynamique, il me suffit alors de mettre la colonne FolderPath et Name dans LIGNES et DureeFinale dans VALEURS,

Ensuite je formate ma colonne DureeFinale en format heure

Et j’obtiens le résultat final

Maintenant, pour mettre à jour mon tableau, il me suffira d’un clic !

Je rappelle (ou pas) que toutes les manipulations que l’on réalise avec l’interface sont automatiquement enregistrées dans une suite d’instructions (un peu comme l’enregistreur de macros)

let

Source = Folder.Files(" C:\bi365\Cours video\camtasia "),

# "Expand Attributes " = Table.ExpandRecordColumn(Source, " Attributes ", {" Content Type ", " Directory ", " Size "}, {" Attributes.Content Type ", " Attributes.Directory ", " Attributes.Size "}),

FilteredRows = Table.SelectRows(# "Expand Attributes ", each ([Extension] = " .camrec ")),

ReplacedValue = Table.ReplaceValue(FilteredRows, "C:\bi365\Cours video\camtasia\ ", " ",Replacer.ReplaceText,{" Folder Path "}),

ReplacedValue1 = Table.ReplaceValue(ReplacedValue, "\ ", " ",Replacer.ReplaceText,{" Folder Path "}),

RemovedColumns = Table.RemoveColumns(ReplacedValue1,{" Attributes.Directory ", " Attributes.Content Type ", " Content ", " Date accessed "}),

RenamedColumns = Table.RenameColumns(RemovedColumns,{{" Attributes.Size ", " Duree "}}),

InsertedCustom1 = Table.AddColumn(RenamedColumns, " Custom ", each [Duree]/300000/86400),

RenamedColumns1 = Table.RenameColumns(InsertedCustom1,{{" Custom ", " DureeFinale "}})

in

RenamedColumns1

Ça peut donner des idées,

Et n’hésitez pas à me faire part de vos souhaits, remarques et conseils, tous ces articles sont là pour vous aider, autant que je réponde le mieux possible.

A bientôt

A proposde l'auteur
Posts Récents
Archives
Rechercher par Tags
Retrouvez-nous
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square