Excel - valeurs pivot dans une cellule (en tant que valeur séparée par des virgules)
J'ai deux colonnes de données:
Fournisseur1 | Produit1 Fournisseur1 | Produit2 Fournisseur1 | Produit4 Fournisseur1 | Produit7 Fournisseur2 | Produit3 Fournisseur2 | Produit5
Je veux «pivoter» autour du fournisseur et donner la liste des produits dans une seule cellule, séparés par des virgules, par exemple
Fournisseur1 | Produit1, Produit2, Produit4, Produit7 Fournisseur2 | Produit3, Produit5
Il y a environ 1000 fournisseurs et 0 <produits <= 10.
Ma solution de contournement actuelle consiste à utiliser des tableaux croisés dynamiques, à enregistrer au format CSV, etc. et est très compliquée. Une solution non VBA serait incroyable.
microsoft-excel
Chris
la source
la source
Réponses:
Voici une solution de table non VBA et non pivot qui n'utilise que quelques formules.
Tout d'abord, j'ai utilisé le "Text-to-columns" pour diviser vos données à ce délimiteur "pipe" (la ligne verticale) en 2 colonnes; une colonne "Fournisseur" et une colonne "Produit". Celles-ci vont dans les colonnes A et B, respectivement. (Il apparaît dans votre message qu'ils sont combinés dans une colonne, donc je les ai d'abord séparés. Vous n'aurez pas à le faire.)
Dans la colonne C, que j'ai nommée colonne "Concaténation", j'ai utilisé cette formule, en commençant dans la cellule C2 et en copiant tout en bas: = IF (A2 = A1, C1 & "," & B2, A2 & "|" & B2)
Dans la colonne D, que j'ai nommée "SupplierChangesAtNextLine?" J'ai utilisé cette formule (commençant en D2 et copiant tout en bas): = IF (A2 = A3, "", "Changed")
Vous devriez maintenant pouvoir filtrer sur la colonne D uniquement les valeurs "modifiées".
Bonne chasse!
la source
la source
Ajouter la colonne C comme compteur *: = COUNTIF (A $ 2: A $ 528, A2)
Ajouter D comme incrément * = IF (A2 = A1, D1 + 1, 1)
Ajouter E pour concaténer *: = IF (A1 = A2, E1 & "," & B2, B2)
Ajoutez F pour ne conserver que le dernier enchaînement : = IF (AND (C2 = D2, E4 <> ""), E4, "")
Remarque ajoutez dans la cellule 2 et tirez vers le bas (ou double-cliquez dans le coin droit) pour appliquer la formule à toutes les cellules de la colonne
copier et coller comme valeurs dans une autre feuille, trier par ordre décroissant par F, supprimer le reste
la source