Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doublons

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

amerig

XLDnaute Nouveau
Bonjour à tous,

C'est mon premier post ici et j'avoue que j'espère vraiment avoir de l'aide car ça m'éviterai beaucoup de temps perdu 🙂

Dans le tableau ci-joint, il y a :
- product_id = identifiant produit (col A)
- categories_id_new = catégorie du produit correspondant (col C)

Le problème, un produit peut avoir plusieurs catégories. Donc un product_id peut être affiché plusieurs fois et avoir donc plusieurs categories_id_new.

Le résultat voulue : avoir en col F les product_id et en col G toutes les categories_id_new pour un produit par ligne ; séparées par une virgule, se serait un must !

Dans l'idée, ça donnerait un truc du genre (données réelles) :
{col F} product_id = 53
{col G} categories_ids = 54, 43 (peu importe l'ordre ici)​

C'est pour un import sur une boutique et étant donné qu'il y a 2000 produits environ, ça serait bien utile voyez-vous 😀

Je ne vous cache pas que je remercie d'avance tous ceux qui aideront à résoudre ce mystère 🙂

Merci donc.
Arnaud
 

Pièces jointes

Dernière édition:
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Bonjour phlaurent55,
J'ai vu que le .csv ne passait pas donc j'ai rectifié et le fichier est désormais attaché en .xls
Merci pour la réactivité surprenante 😀

NB : il faut me dire si un point n'est pas clair ou s'il faut plus de précisions 🙂
 
Dernière édition:
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Bonjour,

Une proposition avec une fonction personnalisée à mettre dans un module :
Code:
Function categories_ids(products_id As Long, liste_products_id As Range, offset_categories_id_new As Long) As String
    Dim c As Range
    For Each c In liste_products_id
        If c = products_id Then categories_ids = categories_ids & c.Offset(0, offset_categories_id_new) & ", "
    Next c
    If Len(categories_ids) > 0 Then
        categories_ids = Left(categories_ids, Len(categories_ids) - 2)
    Else
        categories_ids = "non trouvé"
    End If
End Function
S'utilise comme une fonction excel.
Faire 'insertion / fonction / personnalisée' pour avoir les libellés des paramètres.
ex syntaxe:
=categories_ids(F2;$A$2:$A$3170;2)
=categories_ids(products_id, liste_products_id, offset_categories_id_new)

eric
 

Pièces jointes

Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Bonjour Eric et merci pour ta réactivité,

J'avoue être complètement dépassé par l'info que tu viens de me donner 🙁

J'ai ouvert le fichier mais je ne vois pas comment l'exploiter et dans la case G2 où tu as inséré la fonction, il y a #NOM? et pas de categories_id séparés par des virgules.

Peux-tu s'il te plait m'expliquer brièvement le fonctionnement de la macro ?

Merci d'avance 😱
Arnaud
 
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Re,

Il faut que tu acceptes les macros.
Sur excel 2003 : menu 'outils / options / sécurité / sécurité des macros...' : choisir 'moyen' et accepter à l'ouverture du fichier.
Sur 2007-2010 : fouiller dans les options ou chercher sur le net ;-)

eric

edit: en attendant mettre toi même le code sur ton fichier original, ça devrait marcher.
- Alt+F11 pour ouvrir vba
- clic-droit sur le projet de ton classeur (à gauche) et choisir 'insertion / module'
- coller le code dans le module (à droite).
- dans la feuille coller la formule =categories_ids(F2;$A$2:$A$3170;2)

eric
 
Dernière édition:
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Bonjour Eric,

Je suis sur Mac avec Excel 2008, le logiciel demande si je veux conserver les macros, ce que j'accepte bien entendu et l'affichage est le suivant "J'ai ouvert le fichier mais je ne vois pas comment l'exploiter et dans la case G2 où tu as inséré la fonction, il y a #NOM? et pas de categories_id séparés par des virgules."

Merci d'avance 🙂
Arnaud
 
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Re,

Humm, dommage pour toi. Il me semble qu'excel 2008 ne connait pas vba...
Et par fonction ça risque de ne pas être évident vu qu'on ne peut pas concaténer des matrices.
Sans doute possible avec des cellules intermédiaires mais il faudrait fournir une évaluation du nombre maxi de categories_id_new.
eric
 
Dernière édition:
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Rebonjour,

Juste une dernière chose, le regroupement des categories_id est fait en colonne G et il y a les product_id en colonne F.

Comment faire pour supprimer les doublons des product_id et que chaque ligne de doublon soit supprimée (ce supprimera donc les categories_id associées aux doublons) ?

Merci d'avance 🙂
Arnaud
 

Pièces jointes

Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Re,

et pourquoi tu ne fais pas plutôt une extraction sans doublons via 'données / filtrer / filtre élaboré...' ?
cocher 'copier vers un autre emplacement' et 'extraction sans doublon'

et tu mets les formules ensuite.
eric


 

Pièces jointes

  • capture.jpg
    22.4 KB · Affichages: 142
  • capture.jpg
    22.4 KB · Affichages: 146
Dernière édition:
Re : Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doubl

Re,

Je pensais que ça allais supprimer les doublons dans les product_id et par la même les doublons dans categories_id mais non apparemment tout est bon !

J'adore quand ça fonctionne comme ça. Le plus énervant est de savoir que ça peut aller aussi vite mais de ne pas savoir faire 🙂

Merci encore pour ton aide Eric !
Arnaud
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…