Question excel - concaténation mais conditionnelle

Bonjour à tous,

Je rame un peu sur excel, c'est vraiment pas un logiciel dont j'ai souvent l'occasion de me servir...

J'ai un tableau de 6000 lignes et d'une douzaine de colonnes mais j'ai des points communs dans mes lignes, par exemple la référence d'un dossier et après des colonnes contenant des valeurs identiques ou différentes.

par exemple :

A B C D E
THU0865 US Date1 12235 Dupont

THU1030 US Date2 56414 Dupont
THU1030 MX Date2 65234 Dupont
THU1030 DE Date2 10254 Dupont

THU1066 TH Date3 12324 Durant
THU1066 DE Date3 12324 Durant
THU1066 FR Date3 12324 Durant
THU1066 ES Date3 12324 Durant
THU1066 IT Date4 12324 Durant

J'aimerais rassembler en une ligne toutes lignes qui portent le même nom dans A, mais sans perdre l'information des lignes B à E et donc concaténer les valeurs de chaque colonne (et même si possible ne faire apparaître qu'une fois des termes identiques).

J'aimerais donc avoir au final la chose suivante :

A B C D E
THU0865 US Date1 12235 Dupont

THU1030 US, MX, DE Date2 56414, 65234,10254 Dupont

THU1066 TH, DE, FR, ES, IT Date3, Date4 12324 Durant

Bon même si les termes sont redondants, je prends :p.
Si quelqu'un à une piste ou une méthode, voir même un autre logiciel un peu plus simple d'accès pour résoudre mon problème, je suis preneur !

bonne soirée !

3 réponses

  1. Rebonjour

    je reviens avec une autre idée sans macro mais avec un tableau croisé intermédiaire.
    1) un tableau croisé remet en forme les données (par dossier)
    2) des formules permettent de concaténer sans doublon
    3) il faut venir chercher ces données pour la tableau final.

    Il suffit d'actualiser le premier TCD pour avoir les concaténations. Mais le fichier est plus lourd (Tableau + formules)

    voici le fichier exemple
    https://www.cjoint.com/c/EHngJoHua3l
    1
    1. Bonsoir

      Possible avec une macro en VBA
      Il faut pour cela connaitre la structure exacte de ton fichier
      Postes ton fichier (anonymé si nécessaire) sur cjoint.com fais créer le lien, copies-le et reviens l'indiquer ici

      Cdlmnt
      Via
      0
      1. Bonjour

        de façon très rapide, avec une fonction VBA de concaténation de plage :
        Function ConcatenationPlage(Tableau As Variant, Optional Separateur = " / ")

        For Each i In Tableau
        If concatenation <> "" And i <> "" Then
        ConcatenationPlage = ConcatenationPlage & Separateur
        End If
        ConcatenationPlage = ConcatenationPlage & i
        Next i

        End Function
        NB : possibilité de mettre un séparateur par défaut dans la fonction.

        puis tu saisis une formule du style :
        =ConcatenationPlage(SI($A$2:$A$10=$E12;$B$2:$B$10;"")) (CTRL + SHIFT+ENTER)

        en a2:A10 : colonne des dossiers
        en a2:A10 : 1 colonne de données
        en E12 la valeur cherchée (tableau avec tous les numéro de dossiers.

        /!\ pas de gestion des doublons.

        Je laisse Via55 s'occuper de cette partie.
        0
        1. Une petite erreur dans la fonction
          If ConcatenationPlage <> "" And i <> "" Then
          0