Table des matières

Il arrive parfois que l'on ne sache pas à l'avance exactement combien et quelles lignes doivent être importées à partir des données source. Supposons que nous devions charger des données à partir d'un fichier texte dans Power Query, ce qui, à première vue, ne présente pas de gros problème. La difficulté est que le fichier est régulièrement mis à jour, et demain il risque d'avoir un nombre différent de lignes avec des données, un en-tête de trois et non deux lignes, etc. :

Importation d'un fragment flottant dans Power Query

Autrement dit, nous ne pouvons pas dire à l'avance avec certitude, à partir de quelle ligne et exactement combien de lignes doivent être importées. Et c'est un problème, car ces paramètres sont codés en dur dans le M-code de la requête. Et si vous faites une requête pour le premier fichier (import de 5 lignes à partir de la 4ème), alors cela ne fonctionnera plus correctement avec le second.

Ce serait formidable si notre requête pouvait elle-même déterminer le début et la fin du bloc de texte "flottant" à importer.

La solution que je veux proposer est basée sur l'idée que nos données contiennent des mots-clés ou des valeurs qui peuvent être utilisés comme marqueurs (caractéristiques) du début et de la fin du bloc de données dont nous avons besoin. Dans notre exemple, le début sera une ligne commençant par le mot SKU, et la fin est une ligne avec le mot Total. Cette validation de ligne est facile à mettre en œuvre dans Power Query à l'aide d'une colonne conditionnelle - un analogue de la fonction IF (SI) sur Microsoft Excel.

Voyons comment le faire.

Tout d'abord, chargeons le contenu de notre fichier texte dans Power Query de la manière standard - via la commande Données – Obtenir des données – À partir d'un fichier – À partir d'un fichier texte/CSV (Données – Obtenir des données – À partir d'un fichier – À partir d'un fichier texte/CSV). Si Power Query est installé en tant que complément séparé, les commandes correspondantes se trouveront dans l'onglet Requête d'alimentation:

Importation d'un fragment flottant dans Power Query

Comme toujours, lors de l'importation, vous pouvez sélectionner le caractère séparateur de colonne (dans notre cas, il s'agit d'une tabulation), et après l'importation, vous pouvez supprimer l'étape ajoutée automatiquement type modifié (type modifié), car il est trop tôt pour attribuer des types de données aux colonnes :

Importation d'un fragment flottant dans Power Query

Maintenant avec la commande Ajout d'une colonne - Colonne conditionnelle (Ajouter une colonne - Colonne conditionnelle)ajoutons une colonne en vérifiant deux conditions - au début et à la fin du bloc - et en affichant toutes les valeurs différentes ​​​​dans chaque cas (par exemple, les nombres 1 и 2). Si aucune des conditions n'est remplie, la sortie nul:

Importation d'un fragment flottant dans Power Query

Après avoir cliqué sur OK on obtient l'image suivante :

Importation d'un fragment flottant dans Power Query

Passons maintenant à l'onglet. De La Carrosserie et choisissez une équipe Remplissez (Transformer – Remplir – Bas) – nos uns et deux s'étireront le long de la colonne :

Importation d'un fragment flottant dans Power Query

Eh bien, comme vous pouvez le deviner, vous pouvez simplement filtrer les unités dans la colonne conditionnelle - et voici notre donnée convoitée :

Importation d'un fragment flottant dans Power Query

Il ne reste plus qu'à monter la première ligne jusqu'à l'en-tête avec la commande Utiliser la première ligne comme en-tête languette Accueil (Accueil - Utiliser la première ligne comme en-têtes) et supprimez la colonne plus conditionnelle inutile en cliquant avec le bouton droit sur son en-tête et en sélectionnant la commande Supprimer la colonne (Supprimer la colonne):

Problème résolu. Désormais, lors de la modification des données dans le fichier texte source, la requête déterminera désormais indépendamment le début et la fin du fragment "flottant" des données dont nous avons besoin et importera le nombre correct de lignes à chaque fois. Bien sûr, cette approche fonctionne également dans le cas de l'importation de fichiers XLSX, et non TXT, ainsi que lors de l'importation de tous les fichiers d'un dossier à la fois avec la commande Données – Obtenir des données – À partir d'un fichier – À partir d'un dossier (Données — Obtenir des données — Du fichier — Du dossier).

  • Assemblage de tables à partir de différents fichiers à l'aide de Power Query
  • Reconcevoir un tableau croisé à plat avec des macros et Power Query
  • Création d'un diagramme de Gantt de projet dans Power Query

Soyez sympa! Laissez un commentaire