J'ai une feuille de calcul avec des données comme celle-ci:
Produit | Attribut ---------- + ---------- Produit A | Cyan Produit B | Cyan Produit C | Cyan Produit A | Magenta Produit C | Magenta Produit B | Jaune Produit C | Jaune Produit A | Noir Produit B | Noir
Ce que je voudrais faire, regroupez tout par colonne A et que la colonne B soit une liste de valeurs séparées par des virgules qui partagent la colonne A en commun, comme ceci:
Produit | Attribut ---------- + -------------------------- Produit A | Cyan, magenta, noir Produit B | Cyan, jaune, noir Produit C | Cyan, magenta, jaune, noir
Malheureusement, les tableaux croisés dynamiques savent uniquement comment travailler avec des valeurs numériques, et le plus loin dans ce sens est de compter le nombre de fois où la colonne A se produit.
J'ai finalement réussi à le faire en important les données dans une base de données MySQL et en utilisant la GROUP_CONCAT(Attribute)
fonction de MySQL dans une requête avec une GROUP BY Product
clause, mais après m'être cogné la tête sur mon bureau à plusieurs reprises tout en essayant de trouver une solution Excel.
Pour référence future, est-ce possible dans Excel sans macros? Que ce soit ou non, comment pourrait-on y arriver?
la source
Je sais que c'est un ancien poste mais j'ai eu ce défi aujourd'hui. J'ai utilisé le complément PowerQuery de Microsoft (REMARQUE: il est intégré à Excel 2016 par défaut).
Changer la formule
DE:
À:
L'étape 6 exploite les formules Power Query (M) pour effectuer des manipulations de données non exposées via les opérations de base fournies dans l'interface utilisateur. Microsoft dispose d'une référence complète disponible en ligne pour toutes les fonctions avancées disponibles dans Power Query.
la source
Voici quelques approches, toutes deux "non macro" ...
Avec un petit ensemble de données, après avoir d'abord trié par produit (similaire à GROUP BY Product), vous pouvez d'abord copier la colonne "Produit", la coller ailleurs, puis supprimer les doublons. Ensuite, copiez les «Attributs» pour chaque produit et «coller spécial, TRANSPOSE» à côté de chaque produit. Ensuite, concaténez une virgule avec chacun de vos attributs transposés dans une colonne de résultats finale. Certes, tout ce "copier / coller spécial / transposer" deviendrait vieux rapidement si vous avez une longue liste de Produits.
Si vous avez beaucoup de données, en utilisant quelques formules, vous pouvez progresser vers le résultat final, comme indiqué ci-dessous. Les formules en F2, G2, H2, I2 et N2 sont indiquées par les flèches bleues. Copiez-les dans les lignes ci-dessous si nécessaire. Notez que J2: L2 utilise la même formule que I2. En outre, la formule F2 fait référence à une gamme nommée "Produits" qui s'étend sur la gamme A: A.
la source