Power Query Indexation lignes Power Query

Thomi

XLDnaute Nouveau
Bonjour à tous, étant tout novice sur PQ je vous sollicite ^^.

Voici mon problème : Je veux intégrer plusieurs fichiers différents ensemble via PQ. Tous mes fichiers ont la même structure et ont chacuns plusieurs pages : "AD / BB / SV Sec" etc.
J'ai réussi à regrouper les données de chaque feuille sur un seule page mais je souhaiterai pouvoir identifier la 1ère ligne de chaque "Name" différent.

La première ligne de AD puis la première ligne de BB etc... . J'ai essayé d'insérer une colonne index mais cela ne me permet pas de mettre un critère sur le "Name" et donc le comptage ne revient pas à 1 à chaque changement de Nom.

J'utilise l'onglet Traitement de fichier dans mon PQ j'espere que vous comprendrez ma requete.
Je vous remercie
Thomi
 

Pièces jointes

  • Traitement de données.xlsx
    18.1 KB · Affichages: 2
Solution
Bonsoir,
Hello Chris :)
Une alternative, avec ton fichier test.
Ici, je rajoute juste une colonne d'index, à toi d'en faire ce que tu veux
Le code :

VB:
let
    Source = Excel.Workbook(File.Contents("C:\Users\tla4jny\Desktop\Fichier Forum.xlsx"), null, true),
    SupprCol = Table.SelectColumns(Source,{"Name", "Data"}),
    Rename = Table.RenameColumns(SupprCol,{{"Name", "Appro"}}),
    Filtr = Table.SelectRows(Rename, each ([Appro] = "AD" or [Appro] = "BB" or [Appro] = "EC Frais" or [Appro] = "EC Surg" or [Appro] = "PB Frais" or [Appro] = "PB Sec" or [Appro] = "SP" or [Appro] = "SS" or [Appro] = "SV Frais" or [Appro] = "SV Sec" or [Appro] = "SV Surg")),
    Expand = Table.ExpandTableColumn(Filtr, "Data", {"Column6"}, {"Data.Column6"}),
    AjtIdx =...

Thomi

XLDnaute Nouveau
Bonjour
Sans fichiers une requête est illisible

Tu parles de pages : tu veux dire onglets ?

Poste 2 classeurs
Bonjour Chris

Est ce que ce fichier te convient mieux et est exploitable ?

J'ai plusieurs pages( feuilles) sur mes fichiers Excel et j'ai réussi à rassembler les données sur une seule requete ou tableau je ne sais pas quel est le nom dans PQ
 

Pièces jointes

  • Fichier Forum.zip
    849.8 KB · Affichages: 6

chris

XLDnaute Barbatruc
RE

En général on récupère le nom du classeur et le nom de l'onglet : donc on sait où commence une liste et où commence la suivante

Ne pas mélanger la requête et les classeurs stockés dans un dossier

Le chemin est indiqué dans la cellule en jaune : à adapter puis actualiser
 

Pièces jointes

  • Traitement de données_PQ.xlsx
    136.6 KB · Affichages: 5

Cousinhub

XLDnaute Barbatruc
Bonsoir,
Hello Chris :)
Une alternative, avec ton fichier test.
Ici, je rajoute juste une colonne d'index, à toi d'en faire ce que tu veux
Le code :

VB:
let
    Source = Excel.Workbook(File.Contents("C:\Users\tla4jny\Desktop\Fichier Forum.xlsx"), null, true),
    SupprCol = Table.SelectColumns(Source,{"Name", "Data"}),
    Rename = Table.RenameColumns(SupprCol,{{"Name", "Appro"}}),
    Filtr = Table.SelectRows(Rename, each ([Appro] = "AD" or [Appro] = "BB" or [Appro] = "EC Frais" or [Appro] = "EC Surg" or [Appro] = "PB Frais" or [Appro] = "PB Sec" or [Appro] = "SP" or [Appro] = "SS" or [Appro] = "SV Frais" or [Appro] = "SV Sec" or [Appro] = "SV Surg")),
    Expand = Table.ExpandTableColumn(Filtr, "Data", {"Column6"}, {"Data.Column6"}),
    AjtIdx = Table.Combine(Table.Group(Expand, "Appro", {{"Idx", each Table.AddIndexColumn(_,"Numérotation",1) }})[Idx])
in
    AjtIdx

Bonne soirée
 

Thomi

XLDnaute Nouveau
RE

En général on récupère le nom du classeur et le nom de l'onglet : donc on sait où commence une liste et où commence la suivante

Ne pas mélanger la requête et les classeurs stockés dans un dossier

Le chemin est indiqué dans la cellule en jaune : à adapter puis actualiser
Bonjour a vous deux et merci de vos réponses,

Je suis désolé mais je suis vraiement tout novice sur PQ et malgré les tutos que j'ai pu regarder je vous avoue ne pas comprendre grand chose à ce que je dois faire par rapport aux solutions que tu proposes Chris.
De plus dès que j'ouvre ton fichier avec tes éléments PQ j'ai un message d'erreur qui s'affiche :
"Formula.Firewall : Requête « Traitement du fichier » (étape « Personnalisée ajoutée ») référence d'autres requêtes ou étapes et ne peut donc pas accéder directement à une source de données. Reconstruisez cette combinaison de données."
Ce même message s'affiche quand je saisie dans une colonne personnalisée la proposition de code faite par Cousinhub....
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Cette erreur provient de la configuration et des paramètres de PQ.
Ouvre l'éditeur PQ (Alt + F12).
Clique sur "Fichier/Options et Paramètres/Options de requête"

1692949404247.png


Puis dans la rubrique "Confidentialité", valider l'option "Toujours ignorer....."

1692949473573.png



Ce paramétrage est à effectuer une bonne fois pour toutes, cette option étant source de plus de pb que d'une quelconque utilité.
Bonne journée
 

Thomi

XLDnaute Nouveau
Bonjour,
Cette erreur provient de la configuration et des paramètres de PQ.
Ouvre l'éditeur PQ (Alt + F12).
Clique sur "Fichier/Options et Paramètres/Options de requête"

Regarde la pièce jointe 1177162

Puis dans la rubrique "Confidentialité", valider l'option "Toujours ignorer....."

Regarde la pièce jointe 1177163


Ce paramétrage est à effectuer une bonne fois pour toutes, cette option étant source de plus de pb que d'une quelconque utilité.
Bonne journée
Génial ! J'ai désormais pu inserer le code que tu as transmis plus haut et ca fontionne exactement comme je l'esperais !
Merci à vous deux pour votre aide et bonne journée!
 

Thomi

XLDnaute Nouveau
Bonsoir,
Hello Chris :)
Une alternative, avec ton fichier test.
Ici, je rajoute juste une colonne d'index, à toi d'en faire ce que tu veux
Le code :

VB:
let
    Source = Excel.Workbook(File.Contents("C:\Users\tla4jny\Desktop\Fichier Forum.xlsx"), null, true),
    SupprCol = Table.SelectColumns(Source,{"Name", "Data"}),
    Rename = Table.RenameColumns(SupprCol,{{"Name", "Appro"}}),
    Filtr = Table.SelectRows(Rename, each ([Appro] = "AD" or [Appro] = "BB" or [Appro] = "EC Frais" or [Appro] = "EC Surg" or [Appro] = "PB Frais" or [Appro] = "PB Sec" or [Appro] = "SP" or [Appro] = "SS" or [Appro] = "SV Frais" or [Appro] = "SV Sec" or [Appro] = "SV Surg")),
    [COLOR=rgb(235, 107, 86)][B]Expand = Table.ExpandTableColumn(Filtr, "Data", {"Column6"}, {"Data.Column6"}),[/B][/COLOR]
    AjtIdx = Table.Combine(Table.Group(Expand, "Appro", {{"Idx", each Table.AddIndexColumn(_,"Numérotation",1) }})[Idx])
in
    AjtIdx

Bonne soirée
Je me permets de revenir vers toi, as-tu s'il te plait une astuce pour pouvoir définir rapidement plusieurs colonne dans la partie du code surligné au-dessus en rouge s'il te plait ? En effet j'ai 20 colonnes à intégrer dans la formule et je n'arrive pas a comprendre comment formuler tout ca, ma ligne est interminable.

Je te remercie
 

Cousinhub

XLDnaute Barbatruc
Re-,
Je ne comprends pas du tout ce que tu veux...
Quel code surligné en rouge?
Quel résultat?
Quelles colonnes?
Refais un exemple avec 3-4 colonnes, et le résultat escompté, stp?
@ te relire
Re,
Vu dans la pièce jointe, les balises rgb...
Précises les colonnes, si elles se suivent, le nombre total et le nombre voulu...
 

Thomi

XLDnaute Nouveau
Re-,
Je ne comprends pas du tout ce que tu veux...
Quel code surligné en rouge?
Quel résultat?
Quelles colonnes?
Refais un exemple avec 3-4 colonnes, et le résultat escompté, stp?
@ te relire
Re,
Vu dans la pièce jointe, les balises rgb...
Précises les colonnes, si elles se suivent, le nombre total et le nombre voulu...
Pardon, oui au moment d'envoyé le message la couleur avait sautée et seulement les balises apparaissaient, ok super je pensais devoir repreciser a chaque fois le nom et le nom souhaité je m'embrouillais, merci a toi et bonne soirée
 

Thomi

XLDnaute Nouveau
Re-,
Euh, je n'ai encore rien donné comme précision....
Vu que je ne sais pas ce que tu veux développer dans le Table.ExpandTableColumn....
Excuse moi je n'avais pas vu ta réponse,
AH, j'ai cru que le précise les colonnes était l'élément de réponse ........
J'ai donc listé dans ma requete les colonnes et ca a répondu à mon souci, pour ca que je pensais d'autant plus qu'il s'agissait de la réponse.
 

Discussions similaires

Réponses
13
Affichages
506

Statistiques des forums

Discussions
312 211
Messages
2 086 298
Membres
103 171
dernier inscrit
clemm