Accueil › Forums › Power Query › Comment exploiter 1 donnée du titre
- Ce sujet contient 8 réponse, 3 participant et a été mis à jour pour la dernière fois par
VincianeB, le il y a 3 mois.
-
AuteurMessages
-
21 juillet 2025 à 10 h 09 min #155907
VincianeB
ParticipantBonjour,
Il y a peu de temps que j’ai découvert Power Query et je me qualifie de débutante. Le peu que je connais me permet d’aider mes collègues, ce que j’apprécie.
Je dois exploiter, avec Power Query, un dossier contenant de nombreux fichiers excel (+/- 400/jour).
Ces fichiers sont tous constitués de la même manière.
La ligne 1 contient les titres, à l’exception de la cellule A1 qui contient une donnée que je dois exploiter, tout comme les données contenues dans la colonne A, à partir de la ligne 2.
Pourriez vous m’indiquer si cela est possible et si oui, comment ?Merci à vous
Vinciane
Attachments:
You must be logged in to view attached files.21 juillet 2025 à 14 h 10 min #155916Daniel
ParticipantBonjour Vinciane, le Forum,
Si j’ai bien compris la demande , qui est de propager sur toutes lignes du/des Fichier(s) la valeur contenue dans la cellule A1, je propose la requête suivante :
———————————————————————————————-
let
Source = Excel.CurrentWorkbook(){[Name=”Table1″]}[Content],
ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Colonne1”, type text}, {“Colonne2”, type text}, {“Colonne3″, type text}}),
ValeurTXXX = ModificationTypeDonnees{0}[Colonne1],
MAJEnteteCol1 = Table.PromoteHeaders( Table.ReplaceValue(ModificationTypeDonnees,”TXXX”,”A Déterminer”,Replacer.ReplaceText,{“Colonne1”})),
AjoutValeurTXXX = Table.AddColumn(MAJEnteteCol1, “Personnalisé”, each Table.AddColumn(MAJEnteteCol1,”TXXX”, each ValeurTXXX)),
SuppressionColonnes = Table.RemoveColumns(AjoutValeurTXXX,{“A Déterminer”, “idASD”, “N°Facture”}),
DevelopperTable = Table.ExpandTableColumn(SuppressionColonnes, “Personnalisé”, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”}, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”})
in
DevelopperTable
———————————————————————————————-Il restera à définir l’entête de colonne de la colonne 1 que j’ai mis pour l’instant à la valeur “A Déterminer”.
Ci-joint le fichier avec le résultat de la requête Power Query. D’autres solutions sont certainement possibles et d’autres membres ne manquerons pas de vous les communiquer.Cordialement
DanielAttachments:
You must be logged in to view attached files.22 juillet 2025 à 3 h 05 min #155920Aline Clozel
ParticipantBonjour,
Je rajouterais à ces explications qu’il est possible d’appeller un répertoire et non un seul fichier excel. Il faut choisir comme source de données un fichier et ensuite mettre en forme le traitement à partir de l’un d’entre eux. Ensuite le traitement s’appliquera à tout le contenu de ce dossier si les fichiers sont tous les mêmes.
Est ce que ça vous aide ?22 juillet 2025 à 3 h 20 min #155922VincianeB
ParticipantBonjour Daniel,
Merci pour votre réponse. Je m’en vais tester cela.
Je me permets une question complémentaire.
Vu le volume de fichiers à traiter en une fois (car contenu dans un répertoire), le fait qu’il s’agisse de feuille de calcul simple et non de tableau structuré dans chaque fichier pourrait-il être source d’erreur ?Merci pour votre complément d’informations
Vinciane
22 juillet 2025 à 3 h 23 min #155923VincianeB
ParticipantBonjour Aline,
Merci pour vos précisions. Je pense effectivement que cela va m’aider.
Je me permettrais de revenir vers vous si je coince.
Belle journéeVinciane
22 juillet 2025 à 15 h 16 min #155936Daniel
ParticipantBonjour Vincianne, Aline, le Forum,
En complément de ma précédente réponse, je propose la requête suivante avec une fonction permettant de traiter les différents fichiers contenus dans un dossier. Je suis parti du principe que toutes les feuilles des fichiers portaient le même nom.
Requête fonction fxImport
let
Source = (FileName,SheetName) => let
Source = Excel.Workbook(FileName, null, true),
Feuil1_Sheet = Source{[Item=SheetName,Kind=”Sheet”]}[Data],
ModificationTypeDonnees = Table.TransformColumnTypes(Feuil1_Sheet,{{“Column1”, type text}, {“Column2”, type text}, {“Column3″, type text}}),
ValeurTXXX = ModificationTypeDonnees{0}[Column1],
MAJEnteteCol1 = Table.PromoteHeaders( Table.ReplaceValue(ModificationTypeDonnees,ValeurTXXX,”A Déterminer”,Replacer.ReplaceText,{“Column1”})),
AjoutValeurTXXX = Table.AddColumn(MAJEnteteCol1, “Personnalisé”, each Table.AddColumn(MAJEnteteCol1,”TXXX”, each ValeurTXXX)),
SuppressionColonnes = Table.RemoveColumns(AjoutValeurTXXX,{“A Déterminer”, “idASD”, “N°Facture”}),
DevelopperTable = Table.ExpandTableColumn(SuppressionColonnes, “Personnalisé”, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”}, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”})
in
DevelopperTable
in
Source
Fin de la requête fonctionRequête d’importation des différents fichiers
let
Source = Folder.Files(“E:\Téléchargements\Vincianne”),
#”Colonnes supprimées” = Table.RemoveColumns(Source,{“Extension”, “Date accessed”, “Date modified”, “Date created”, “Attributes”}),
AppelFonctionfxImport = Table.AddColumn(#”Colonnes supprimées”,”Test”, each fxImport( [Content],”Feuil1″)),
SuppressionColonnes = Table.RemoveColumns(AppelFonctionfxImport,{“Content”, “Folder Path”}),
DeveloppementDonnees = Table.ExpandTableColumn(SuppressionColonnes, “Test”, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”}, {“A Déterminer”, “idASD”, “N°Facture”, “TXXX”})
in
DeveloppementDonnees
Fin de la requêteEn espérant que cela t’aidera et répondra à ta demande
Cordialement
DanielAttachments:
You must be logged in to view attached files.23 juillet 2025 à 3 h 31 min #155942Aline Clozel
ParticipantBonjour Daniel,
J’ai encore des soucis de compréhension pour la partie fonction.
Est ce que tu peux nous expliquer ta partie requête fonction ? pas à pas ?
Merci23 juillet 2025 à 10 h 47 min #155947Daniel
ParticipantBonjour Vinciane, Aline, le Forum,
Explications de la requête fxImport, je les ai mis en regard de chaque ligne de la requête Power query
// Parametres de la fonction Nom du fichier et nom dela feuille contenant les données
(FileName,SheetName) => let
// reçoit le contenu du fichier excel (en provenant de la colonne Binary de la requête principale)
Source = Excel.Workbook(FileName, null, true),
// On indique ou se trouve les données (dans quelle feuille)
Feuil1_Sheet = Source{[Item=SheetName,Kind=”Sheet”]}[Data],
// Modification du type de données, on les met tous en type text
ModificationTypeDonnees = Table.TransformColumnTypes(Feuil1_Sheet,{{“Column1”, type text}, {“Column2”, type text}, {“Column3″, type text}}),
// Récupération de la valeur contenue dans la 1ère ligne de données de la 1ère colonne
ValeurTXXX = ModificationTypeDonnees{0}[Column1],
// Ici changement de l’entête de la 1ère colonne car il contient la valeur de la 1ère ligne de données de la colonne 1 et on va ensuite promouvoir la 1ère ligne comme entêtes de données
MAJEnteteCol1 = Table.PromoteHeaders( Table.ReplaceValue(ModificationTypeDonnees,ValeurTXXX,”A Déterminer”,Replacer.ReplaceText,{“Column1”})),
// Pour chaque ligne des donnes du fichier en cours de traitement, on va ajouter la valeur contenue en ligne 1 colonne 1 que l’on a récupéré dans l’étape “ValeurTXXXX”
AjoutValeurTXXX = Table.AddColumn(MAJEnteteCol1, “Périodes”, each ValeurTXXX)
in
AjoutValeurTXXXRequête adaptée et avec les commentaires en pièce jointe
Cordialement
DanielAttachments:
You must be logged in to view attached files.24 juillet 2025 à 6 h 42 min #155958VincianeB
ParticipantBonjour Daniel, Aline, le Forum
Merci pour ces explications et exemple très précis.
Hâte de rentrer au boulot pour tester cela.Excellente fin de semaine à vous
Vinciane
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.



