Power Query - Dupliquer une ligne en fonction de sa valeur

Bonjour,

Je débute sur Power Query. Mon besoin semble relativement simple mais je ne trouve pas la solution seul.

Je ne sais pas s'il s'agit de la meilleure solution (probablement pas) mais je cherche à faire un recensement manuel après un inventaire théorique.

Donc je sais combien d'objet je dois retrouver (colonne nombre théorique) et je cherche à créer autant de ligne que ce nombre théorique.

Le fichier me semble s'expliquer de lui-même :

L'essentiel serait fait puisqu'ensuite je cherche à rajouter une colonne simple pour comptabiliser mes objets et une autre pour ajouter un commentaire (colonne description).

En vous remerciant,

Edit : j'ai trouvé quelqu'un qui a trouvé mais je ne comprends pas. Le code sortie m'est illisible à mon niveau de compréhension, et comme je souhaite savoir le faire ma requête reste valable. Quelques explications seraient les bienvenues.

Bonjour,

Pas certain du tout que Power Query permette ce genre de manip (ni qu'il soit conçu pour) !?

À toutes fins utiles, une proposition par macro. Tu verras si cette solution te convient (ou pas )
Dans le fichier joint, la Feuil2 ne contient que les en-têtes de colonnes. En Feuil1, cliquer sur le "bouton" DUPLIQUER et vérifier les résultats en Feuil2.

Alors apparemment ça se fait dans Power Query mais il faut comprendre le code pour ne serait-ce que l'adapter () . Du coup, je recherche avant tout le principe des manipulations à faire. J'ai mis un petit lien bas du premier message.

Sinon c'est exactement ça. J'aurais juste quelques questions pour mieux comprendre le code.

  • Que fait le point dans l'expression IIf(.Cells(lig, 3) = 0, 1, .Cells(lig, 3)) ? Je le voyais comme un outil qui permettait de conjuguer des objets mais là il est collé à la parenthèse alors mon explication ne tient plus. Peut-être que ça veut signifier "pour chaque cellule de la ligne de la colonne C".

Serait-il possible de commenter très sommairement le code ? J'ai du mal à imaginer certaines étapes, en particulier avec le compteur cpt.

Bonjour à tous,

en ajoutant une colonne sup

par contre, si tu as une solution pq moins tarabiscotée que la mienne, peux-tu mettre le fichier, ça m'intéresse

merci

Crdlmt

Bonsoir à tous,

Une proposition pour la création du tableau de base :

Bonsoir à tous,

Une autre proposition,

En passant toujours par la création d'une colonne personnalisée :

= Table.AddColumn(Source, "Personnalisé", each Table.Repeat(
    Table.FromRecords({[Nombre théorique=1]}),[Nombre théorique]))

Il suffit ensuite de développer la table et supprimer les colonnes inutiles.

Bonjour à tous

On peut utiliser la solution donnée sur ton lien ou celle de JFL

En revanche les colonnes ajoutées ne peuvent être gérée correctement sans un ID unique associée à chaque ligne source (et non calculé) sinon il y a risque de désynchronisation de ces colonnes avec les autres

Bonjour à tous,

Pas certain du tout que Power Query permette ce genre de manip (ni qu'il soit conçu pour) !?

Heureusement que je n'ai pas dit que c'était rigoureusement impossible ! J'aurais l'air malin, maintenant !
Merci à ceux/celles qui ont démontré que je me trompais (qui a dit "encore" ?)

J'ai remplacé le fichier dans mon message précédent (en commentant le code)

Bonjour à tous !

Pas certain du tout que Power Query permette ce genre de manip (ni qu'il soit conçu pour) !?

Heureusement que je n'ai pas dit que c'était rigoureusement impossible ! J'aurais l'air malin, maintenant !

"Ils ne savaient pas que c’était impossible, alors ils l’ont fait.”(Mark Twain)

Il m'arrive souvent, à la lecture de certains messages, de penser la problématique hors sol........Il me faut juste attendre quelques minutes pour prendre conscience de la créativité des contributeurs et donc des connaissances qui me sont manquantes....

Bonjour à tous,

Je vous remercie pour les solutions proposées. Je n'ai pas eu le temps de tout regarder en détails pour le moment, mais j'ai jeté un coup d'œil à tout.

@78Chris

Je pense que la requête PQ de JFL semble la plus directe. A laquelle je vais effectivement (essayer de) rajouter un ID aux lignes sources avant de les développer. Est-ce que ça gêne si mettons deux lignes ont le même ID avant développement ? Ou bien faut-il créer un certain nombre d'ID en fonction du nombre lignes à créer ?

Merci beaucoup à tout le monde !

Bonjour

Il faut un premier ID immuable que l'on va compléter dans PowerQuery par l'index de la ligne développée ce qui donnera un nouvel ID.

Pour conserver la synchro avec les colonnes ajoutées il faut ensuite faire un self referencing (https://exceleratorbi.com.au/self-referencing-tables-power-query) entre la requête initiale et le tableau complété sur la base de cet ID2 de façon à lier les nouvelles colonnes aux anciennes

Rechercher des sujets similaires à "power query dupliquer ligne fonction valeur"