Power Query lancer des requêtes sur les fichiers listés
Bonjour,
Suite aux conseils avertis proposé par 2 membres du forum sur le sujet que j'avais ouvert avant hier, j'ai donc découvert Power Query avec des tutos de débutants. Visiblement c'est un outil très facile (et nocode) pour importer des tableaux de plusieurs fichiers ou encore faire des requêtes pour sélectionner, supprimer et/ou transformer les résultats obtenus en effet !
J'ai cependant 3 choses qui ne fonctionnent pas :
Quand je choisis "Entrer des données", Power Query détecte et m'affiche bien mes données avec le format exact (exemple en colonne 1, il voit bien qu'il s'agit d'une donnée en pourcentage et inscrit 100%, en colonne 2, un décimal, etc.)
Problème n°1 : Cependant quand je charge "Ferme et je charge dans...", toutes les données sont bien importées dans mon classeur excel, si et seulement si, je garde mes en-têtes !? Or par la suite, je n'aurai plus besoin de ces en-têtes puisque j'envisage de faire un boucle qui inscrira ligne par ligne les données. Avec l'en-tête, cela risque d'écraser la ligne précédente et ce n'est pas le but !
Problème n°2 : Avec ou sans en-tête mes colonnes avec des pourcentages sont toutes transformées et le signe % disparait (exemple ici au dessus avec "%Colonne 1" égale 100% puis dans mon classeur "Colonne 1" égale à 1.
Pas très grave me direz-vous puisque je n'aurai qu'à transformer toutes les colonnes manuellement une fois les imports finis en changeant le format des colonnes mais si PQ fait bien le boulot, pourquoi me fait-il cela ?
3ième et dernier problème : J'ai trouvé plein de tutos vidéo mais pas un seul qui parle de mon importation ! Greeeeee....
Je m'explique :
1/ J'ai fait une première requête (hyper simple) qui me copie le chemin, le nom de tous les fichiers contenus dans un dossier (Cf screenshoot ci-dessous). Je profite de cette requête, appelée "Requête import des fichiers" pour aller chercher des élements et commencer à les transformer. Ces données sont importées dans la feuille 1 de mon classeur appelée "Liste des classeurs"
2/ Comme j'ai besoin de données distinctes dans chacun de ces fichiers, j'ai ouvert l'un d'entre eux (le premier en faite :) ) puis j'ai récupéré les données via plusieurs requêtes appelées "Table_import_ L1", "Table_import_ L2" et ainsi de suite jusqu'à L10.
Pour le moment, comme je suis un newby en PQ, je fais des ""Ferme et je charge dans..." à la fin de chacune des requêtes pour les importer dans mon fichier. j'imagine que si je fusionne les requêtes, cela se fera en une seule fois... (?) mais bref...
Mon tableau est donc presque terminé et j'ai pu stocker tout cela dans ma feuille 2 appelée "Tableau des résultats" (dont vous avez le sreenshoot ic-dessus) sauf que là je n'ai pu importer que les données du premier classeur :(
D'où ma question, comment dire à PQ de reproduire les requêtes L1 à L10 dans chacun des autres fichiers restant et de les importer sans en-tête dans les lignes suivantes (attendu que le premier classeur aura la ligne 3 de la colonne L à CV, le seconde aura la ligne 4 de la colonne L à CV, et ainsi de suiet jusqu'au dernier ?
Merci pour votre éclairage par avance
Bonjour
Le symbole auquel tu fais allusion dans PowerQuery est simplement un rappel du type de données et du format.
Lord de l'échange avec Excel seul le type est transmis : à toi de paramétrer le tableau Excel résultant avec les formats voulus
PowerQuery est principalement un requêteur et comme tout requêteur il ne traite les données et non leur présentation et ce que tu appelle en-tête ce sont les noms des champs de la table manipulée par PowerQuery.
Tu peux masquer la ligne d'en tête d'un tableau dans Excel mais pas la supprimer
J'ai nettement l'impression que tu n'as pas compris le rôle de PowerQuery
Quand on veut traiter n fichiers de même structure on traite le dossier les contenant et non chaque fichier 1 à 1
Par ailleurs sauf erreur de ma part, à aucun moment tu n'as fourni de classeur exemple donc les échanges restent trop abstraits pour avancer concrètement
Quand on veut traiter n fichiers de même structure on traite le dossier les contenant et non chaque fichier 1 à 1Je veux bien mais d'après ce que j'ai compris de PQ, c'est que tu peux importer des tableaux de la sorte.
Pour ma part, je dois auparavant faire plusieurs requêtes pour ne sélectionner que les cellules qui m'intéressent dans un classeur source (le premier classeur par exemple) et les coller dans mon classeur synthèse. JE NE PEUX PAS PRENDRE TOUTE LA FEUILLE ou TOUTE UNE ZONE (tableau) comme le font tous les tutos visibles ici et là. Les classeurs sources sont tous structurés de la même façon (encore que...) mais sont des rapports avec des graphiques, des textes, des indications dans toutes les pages et non pas un tableau brute avec X colonnes et Y lignes (dont la première indique les en-têtes et le reste des valeurs)
Ensuite, je souhaite reproduire ces mêmes tâches (requêtes) à l'ensemble des fichiers contenus dans un dossier et c'est là que je ne sais pas comment faire et il n'y a aucun tuto là-dessus.
RE
Quand on lie un dossier, PowerQuery crée automatiquement une requête sur un de fichier afin que l'on y modélise ce qu'il faut faire sur ce fichier et l'applique automatiquement à l’ensemble des fichiers du dossier
C'est dans cette modélisation que l'on peut atteindre une ou n cellules.
Tant qu'on n'aura pas d'exemple inutile de débatte du sexe des anges PowerQuery...
Je crois que je m'y prends mal...
Je repose donc ma probématique :
J'ai x fichiers tous structurés de la même façon (et classés dans un dossier) dans lesquels je souhaite récupérer des valeurs situées dans des cellules qui n'appartiennent à aucun tableau et sur lequelle, il y a du texte, des graphiques, des cellules fusionnées, etc. (exemple : en C4, puis en J41 puis C32, D32, K56, etc.). 93 données appartenant à 93 cellules distinctes.
Mon but final est de toutes les récupérer pour les mettre dans un tableur qui me servira de base de données pour des projections en SIG (pour faire simple...). Comme toutes bases de données, tous les données d'une entrée figurent dans une seule et même ligne avec une id.
Pour ma part, l'id qui est égale à 1 reprend toutes les données du premier classeur du dossier, l'id 2 au deuxième jusqu'au l'id x qui reprendra le xième classeur.
Vu que je suis un débutant en PQ, j'ai lu des tutos bien faits qui m'ont permis de comprendre rapidement les bases et :
1* de dresser une liste de l'ensemble des fichiers du dossier (chemin, nom etc.) et d'afficher tout cela dans la feuille 1 d'un autre classeur de synthèse
2* de créer des requêtes (12 requêtes en "Entrer de données") pour aller chercher ses 93 valeurs du premier classeur et de les coller sur une ligne, à droite de ce premier tableau sur la ligne qui correspond au premier classeur dont j'ai déjà le chemin, le nom, l'id ...
Ce que je souhaite donc c'est de comprendre la mécanique qui va me permettre de remplir mon fichier synthèse (ce fameux lien dont tu me parles ?).
Power Query existe depuis 2013 mais je n'ai vu aucun tuto là-dessus donc si vous pouviez me donner la démarche à suivre quand j'en arrive là, ce serait cool.
2 membres du forum m'ont dissuadé de tout faire en PQ et d'abandonner les macros VBA mais je me demande si je ne vais pas y retourner...
Bref merci de m'aider en m'expliquant pas à pas ou de me dire où trouver un tuto qui correspond à ma situation
Comme en informatique, il n'est pas une mais plusieurs solutions, si vous avez une autre piste pour faire la même chose, je suis aussi preneur ; )
Au plaisir de vous lire
Bonjour,
Tout comme mes illustres prédécesseurs ayant essayé de t'apporter une quelconque solution (VBA ou Power Query), je ne peux que plussoyer dans leur demande commune : un fichier exemple!!!
Tu expliques (tant bien que mal) ton besoin, tu vas sûrement choisir la solution qui te sierra le mieux, mais pour tout essai, il faut connaître la structure de tes fichiers. (surtout s'ils sont construits de la même manière)
Aussi, aide-nous à t'aider, et fournis ce fichier exemple, exempt de toutes données confidentielles.
Le reste arrivera alors très rapidement
Bon courage
Je ne sais pas si cela va vous aider mais voici des screenshoots
Image 1 : tableau vierge que je souhaite remplir
Image 2 : exemple d'un classeur source dans lequel je souhaite récupérer des valeurs en Q3, K5, Z3, T36, puis les lignes J41 à AB41, puis les lignes J42 à AB42, ... jusqu'à la ligne J51 à AB51 (sans les lignes 44 et 48), soit 93 valeurs.
J'ai masqué certaines infos car c'est un fichier client ;)
Image 3 : ce que j'ai réussi à extraire via Power Query. Concrètement, je n'ai réussi qu'à récupérer les données du premier classeur avec mes nombreuses requêtes.
1/ La première requêtes récupèrent les chemins et noms de fichier dont je sers ensuite pour remplir des champs (lignes colorées en vert et blanc à gauche)
2/ les 10 autres requêtes me permettent de remplir la ligne dédié au 1ier classeur à partir de la colonne K"sens unique" jusqu'en CW (ligne seule en vert en haut à droite)
Ma question donc que je renouvelle : COMMENT automatiser tout cela pour remplir la suite du tableau (ligne 2 à ligne X) ?
je ne sais pas si des fichiers ou des screenshoots aident à la compréhension de ma problématique mais bon...
Image 4 : le tableau de mes requêtes
En espérant que vous pourrez m'aider car cela doit être une bricole du style "faire une boucle qui change la source du classeur, cherche, copie et colle les données sur la ligne suivante en supprimant l'en-tête (sinon cela écrasera la ligne au dessus ou bien inversement, je n'aurai que des en-têtes sur chaque ligne sauf pour le dernier fichier où les données seront en ligne n+1)
Bref merci pour votre aide
@cousinhub : très sympathique votre réponse :) mais, vous n'avez sans doute pas compris l'aide que je demande à la communauté.
Ce que je ne cherche pas => C'est une solution toute prête à copier/coller via des échanges de fichiers
Ce que j'aimerai, c'est une (ou plusieurs personnes) qui réfléchisse(nt) à ma problématique et me dise(nt) concrètement les grandes étapes à respecter pour y arriver.
Des tutos écrits ou vidéo qui t'expliquent comment "consolider des tableaux (de même structure) dans 10 milliards de classeurs différents", il y en a autant que de mots dans le dico et si avant hier soir, je ne savais même pas que Power Query existait, aujourd'hui je pourrai le faire en quelques minutes.
Malheureusement dans mon cas, ce n'est pas un véritable tableau avec une simple en-tête avec des lignes de données en dessous (ceux sont des données isolées et des tableaux à 2 dimensions que je tranforme en une ligne). Ce qui m'oblige à faire plusieurs étapes et à trouver comment les raccorder :(
Bref avec 3 posts où j'explique à chaque fois ce dont j'ai besoin (un guideline avant tout, ou plus simplement le cheminement pour boucler correctement, ou encore "la jointure à créer dans ce cas" car d'après ce que j'ai compris, cela pourrait être la solution mais je n'en suis pas certain !), je pense qu'on va y arriver...
Merci encore par avance pour vos éclairages
Hello,
Tout est possible avec PowerQuery, on peut récupérer des cellules une à une. Comme il l’a été dit, il faut bien taper sur le dossier, qui va lister l’ensemble de tes fichiers et ensuite il faudra faire la transformation adéquate pour aller chercher les cellules spécifiques.
Méthode à suivre :
- aller taper sur le dossier
- aller chercher l’onglet voulu
- déterminer l’ensemble des croisements lignes/colonnes dont tu as besoin
- mettre l’ensemble de ces valeurs en liste et le tour est joué
Je rejoins donc mes prédécesseurs et notre ami breton concernant le fichier exemple 😉
@+
