Concatener si cellule double

Bonjour,

je cherche depuis 1 heure un truc tout simple que j'ai déjà fais mais je ne me rappelle plus comment.

J'ai le tableau suivant

client---produit
1---A
1---B
2---A
2---C
3---A
3---B
3---C

et je voudrais

client---produit
1---A&B
2---A&C
3---A&B&C

Je pense qu'il y a moyen d'utiliser "simplement" une fonction CONCATENER SI

Merci d'avance de m'éclairer

Cordialement,

8 réponses

  1. bonjour
    dans ce cas tu crées un tableau croisé dynamique.
    dans l'etiquettes de ligne tu mets toutes tes valeurs et en dernier le produit
    0
    1. en réalité, en colonne 1 j'ai le numéro de client
      en 2 j'ai le produit qu'il a et dans les 11 autres j'ai ses coordonnées.

      Ce qu'il me faudrait ce ne plus avoir qu'une seule ligne par client (tjs avec les 13 colonne), mais savoir quels sont tous les produits dont il dispose en colonne 2 (ou dans une nouvelle en n°14 si plus facile).

      Peut etre que le concatener n'est pas la meilleure solution, mais je ne vois pas comment faire

      Merci d'avance
      0
      1. Je ré-essaie : un Tableau Croisé Dynamique ?
        0
      2. Comment ça marche ? :-)
        0
      3. Bonjour Zoul67
        pour ma culture, comment fais tu pour que tes données soient en ligne. Moi j'ai un decalage d'une ligne a chaque champ ?
        merci

        J'ai trouvé affichage sous forme tabulaire ....
        0
    2. Bonjour
      oui c'est possible mais il faut etre precis dans la demande.
      dans quelle colonne veux tu copier la "concatenation" ?
      faut il tenir compte des 11 autres colonnes ?

      0
      1. Bonjour,

        J'ai plutôt l'impression qu'un Tableau Croisé Dynamique te permettra d'afficher les données clairement et suivant tes attentes.

        A+
        0
        1. Super !

          Mais... :-)

          j'ai 13 colonnes.

          La 1ere c'est le numéro de client, la 2ème c'est son produit et les 11 autres c'est ses coordonnées (toujours les memes evidement)

          donc il n'y a que la 2eme colonne qui change

          Est-il également possible d'introduire un signe (par exemple "&") entre deux noms de produit ?

          Merci d'avance
          0
          1. bonjour
            je te propose cette petite macro que tu colles dans l'éditeur (ALT+F11) en sélectionnant l'onglet de ton fichier

            Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
            If Mid(ActiveCell.Address, 2, 1) = "A" Then
            cnt = 1
            For i = 1 To Range("A65536").End(xlUp).Row
            If Cells(i, 1) = Cells(i + 1, 1) Then
                Cells(cnt, 4) = Cells(cnt, 4) & Cells(i, 2)
                    If Cells(i + 1, 1) <> Cells(i + 2, 1) Then
                        Cells(cnt, 4) = Cells(cnt, 4) & Cells(i + 1, 2)
                        Cells(cnt, 3) = Cells(i, 1)
                        cnt = cnt + 1
                    End If
            End If
            Next i
            End If
            End Sub


            en A tes chiffres
            en B tes lettres
            en C le resumé de tes chiffres
            en D la concatenation des lettres

            pour la lancer doucleclic sur A1
            Ce que l'on conçoit bien s'énonce clairement,
            Et les mots pour le dire arrivent aisément.
            0
            1. Bonjour,

              ca marche nickel...

              sauf si après j'ajoute par exemple

              client---produit
              4---A
              4---B
              4---C
              4---D

              il répond
              4---ABC
              4---BCD

              alors que je voudrai
              4---ABCD

              Ca peut aller jusque 15 produits différents par clients.

              Merci d'avance
              0
              1. bonjour
                essaye ceci :
                =SI(ET(A1=A2;A2=A3);(CONCATENER(B1;B2;B3));SI(A1=A2;(CONCATENER(B1;B2));""))
                et recopie vers le bas de la liste

                Ce que l'on conçoit bien s'énonce clairement,
                Et les mots pour le dire arrivent aisément.
                0