Regrouper lignes sur plusieurs champs

Bonjour,

Je souhaite regrouper les lignes sur les champs du fichier joint suivants
(généralement ces champs coïncident sur 3 lignes; les autres champs seraient à concaténer avec séparateur";")*:
"Source.Name.1", "Source.Name.2", "BDD_ID_PTECH", "X", "Y", "NOM PTECH", "NON-CONFORMITE", "INCIDENCE","OBSERVATION NON-CONFORMITE"

Voici en PJ le tableau avec les requêtes (les tableaux source sont en bas du message)

N'ayant jamais manipulé le langage M, j'ai parcouru les questions sur le sujet et ajouté une étape avec la formule (très certainement maladroite) suivante:
= Table.Group(#”Lignes filtrées”, {"Source.Name.1","Source.Name.2","BDD_ID_PTECH","X","Y","NOM PTECH","NON-CONFORMITE","INCIDENCE","OBSERVATION NON-CONFORMITE"}, {{“STATUT NON-CONFORMITE”, each Text.Combine([STATUT NON-CONFORMITE],";")}, {“BDD_ID_CONSTAT1”, each Text.Combine([BDD_ID_CONSTAT1],";")}, {“DATE DU CONSTAT”, each Text.Combine([DATE DU CONSTAT],";")}, {“OBSERVATION DU CONSTAT”, each Text.Combine([OBSERVATION DU CONSTAT],";")}, {“TYPE LEVEE”, each Text.Combine([TYPE LEVEE],";")}, {“SCHEMA LDR”, each Text.Combine([SCHEMA LDR],";")}, {“LIEN CELLS”, each Text.Combine([LIEN CELLS],";")}, {“DATE LDR AI”, each Text.Combine([DATE LDR AI],";")}, {“DATE AVIS SYANE”, each Text.Combine([DATE AVIS SYANE],";")}, {“AVIS SYANE”, each Text.Combine([AVIS SYANE],";")}}, GroupKind.Local)

Cette erreur apparait:
Expression.SyntaxError : Littéral non valide.

Est-ce à cause des formats multiples (texte et dates) ?

Pouvez-vous m'aider s'il vous plait ?

*(je compte ensuite fractionner selon ce séparateur et supprimer les colonnes qui ne m'intéressent pas car j'ai besoin de garder les informations des 3 lignes selon la colonne)

Robin

76ab-090-ldr.xlsx (14.99 Ko)

Bonjour

Pas clair...

Seules les 5 1ères colonnes ont un sens pour le regroupement

Si on prend les 9 colonnes cités il n'y a aucun doublon donc pas de groupe

Bonjour Chris,

Merci d'avoir jeté un œil c'était pas évident désolé; je simplifierai les prochaines fois.

Effectivement seulement 5 colonnes correspondaient, après relecture certaines colonnes étaient interverties (problème anecdotique) dans ma première PJ; j'ai mis au clair mon problème dans la nouvelle.

J'ai ajouté l'ébauche de la formule pour le message d'erreur, transformé les dates en "text" au cas où le Text.Combine ne fonctionne pas sur les dates, ajouté le détail explicatif de ce que je souhaite dans le nouveau fichier joint.

Robin

Fichier à jour:

J'ai changé les `` par " et remplacé les [STATUT NON-CONFORMITE] par [#"STATUT NON-CONFORMITE"].

La requête ne bloque plus mais je n'arrive toujours pas au résultat escompté.

Résolu !

Le Groupkind.Local en fin de formule était de trop.

Merci d'avoir le temps de me répondre.

Robin

Hello,

Une proposition.

Par contre ton tableau jaune n'est pas bon, pour ETIQUETAGE, la date SYANE n'est pas bonne elle est inversée avec la documentation.

Dis moi si c'est ça que tu cherchais

@+

Wow ! trop fort merci, ca m'évite de fractionner et de supprimer. A tester sur une plus grand base mais ca à l'air magique.

J'arrive pas bien à visualiser ce que font les deux Table.Fill l'une dans l'autre, ni l'underscore qui represente la table à remplir dans le Table.FillUp ni l'intêret de trier la DATE DU CONSTAT avec Table.Sort.

De plus, je ne comprend pas pourquoi les Table.Fill ne s'opèrent qu'à partir de l'étape "Type"

Suffit-il d'annoncer une nouvelle colonne venue de null part (dans {{"tbl", each etc... pour la créer avec Table.Group ?

Je ne connais pas grand chose à ce langage, faut que je potasse ces questions en isolant et testant chaque étapes (je n'ai pas l'impression qu'on puisse jouer la requête étape par étape avec PowerQuery, me trompe-je ?).

Bonjour à tous !

Pour votre information, cette demande est multi-postée....

Hello Bobink,

Je t’invite à clôturer ton post sur les autres forums, ainsi je pourrai répondre à tes interrogations. Également à quoi bon aller sur d’autre forum quand il y a Excel Pratique.com

JFL merci pour la vigilance

bonne journee

Oups je n'avais pas lu la totalité des regles, désolé pour l'impair.

Je vous avoue que j'ai posté la même question le 09/08 et reçu un premier message seulement hier sur devoloppez (j'ai clôturé dans la foulée)

Ne voyant aucune réponse au bout d'une semaine j'ai pensé que mon sujet allait rester lettre morte et donc j'ai reposté ici.

La personne sur développez a strictement corrigé ma syntaxe (ma formule n'était pas trop déconnante, ça a m'a rassuré, moi qui n'y connait qu'un beignet)

Barboute78 m'a apporté un autre moyen d'arriver au résultat ce qui m'a permis d'en apprendre un peu plus.

Au vu de ces éléments j'ose espérer ne pas avoir fait perdre trop de temps aux gens qui m'on répondu; je ne ferai plus cette erreur.

Robin

Hello,

Aller je fais confiance pour la clôture du sujet sur l'autre forum

J'ai remarqué que c'était pas exactement combiner des textes ensemble que tu voulais mais plutôt garder les datas de la date la plus grande par regroupement de lignes et si jamais c'est vide sur des colonnes concernant la date la plus grande ba tu devais récupérer les infos des autres lignes.

Donc voici les explications :

image

- Carré rouge : je récupère les colonnes qui peuvent contenir soit des valeurs null soit des informations que tu veux récupérer, autrement dit toutes les colonnes qui ne font pas parti du regroupement, ca me permettra d'éviter de faire du code en dur pour les carrés verts et bleu avec les FillUp et FillDown ;

- Carré vert : on fait le regroupement avec les colonnes souhaitées et première étape sur les sous tables qui sont générées, je vais remplir vert le haut ;

- Carré bleu : comme pour le carré vert je fais un FillDown. Ainsi avec les deux FillUp/FillDown je suis sûr que chaque "sous ligne" qui n'avaient pas de datas en ont ;

- Carré rose : une fois qu'on est sûr que chaque sous ligne à toutes les infos qu'il faut grâce aux FillUp/FillDown, je vais trier la sous table par "Date DU CONSTAT" en mode du plus grand au plus petit pour que la ligne avec la date la plus grande, donc potentiellement celles qui sont clôturées, remontent en premier.

-Carré jaune : {0} signifie dans ce cas que pour chaque sous table qui ont été FillUp/FillDown + triées, et bien je vais conserver la première ligne de cette sous table. Cela me donne donc un résultat sous forme de Record.

Après réflexion j'aurais pu intervertir les étapes de tri et de FillUp/FillDown. C'était ma vision sur le coup mais il y a pleins de méthodes différentes pour faire ce que tu voulais.

En tout cas, n'hésite pas si besoin et maintenant passe directement par Excel-Pratique ça ira plus vite

Sinon si tout est ok sur ce post tu peux passer le sujet en résolu

@+

Merci beaucoup pour cette démonstration, très claire.

Je suivrai ton conseil la prochaine fois

Rechercher des sujets similaires à "regrouper lignes champs"