Deconcatener et filtrer

Bonjour,

j'ai une cellule remplie d'une liste de mot que je voudrais de-concaténer et trier sur un autre onglet avec un tableau croise dynamique. Exemple:
ma cellule contient: Pierre, Paul, Jack, Pierre... sur un onglet A
sur l'onglet B mon tableau croise doit montrer 2 colonnes: Nom-->Pierre; Quantité--> 2 etc

Merci de votre aide

4 réponses

  1. Contributeur
    Bonjour

    Il est possible de transposer par formules, mais tout dépend du nombre de données que vous avez à traiter pour rester dans une capacité "raisonnable"

    si vous avez converti en ligne à pârtir de A1 en feuil1, vous pouvez tenter dans une autre feuille cette formule en A1, à tirer sur tout le champ utile:

    =INDIRECT(ADRESSE(COLONNE();LIGNE();;;"Feuil1"))

    attention à tous les signes

    cette formule vous renverra en conne A les valeurs de la ligne 1 de feuil1, en colonne B celle de ligne 2 ect...

    Vous pouvez ensuite faire un copier / collage spécial /valeur de la feuille pour supprimer les formules en gardant les résultats.

    crdlmnt

    Errare humanum est, perseverare diabolicum
    1
    1. Contributeur
      Bonjour
      sélectionner la colonne à traiter:
      Ruban/ Données/ Convertir/ délimité / suivant / cocher "espace" et terminer
      pour étaler sur plusieurs colonnes le texte en A

      crdlmnt

      0
      1. Petite précision: la réponse de Vaucluse, que je salue au passage en lui présentant mes meilleurs voeux pour cette nouvelle année :D , n'est valable uniquement si les noms sont séparés par un espace et non par une virgule et un espace comme dans le message de Pyarilal.
        0
    2. Bonjour,

      merci de votre aide. Cela permet de deconcatener le texte mais je ne peux pas exporter les valeurs automatiquement vers un autre onglet du même document pour pouvoir les trier...De plus par défaut les valeurs sont mises en ligne, peut-on les mettre en colonne pour faciliter le tri?

      Merci
      0
      1. Bonjour Pyarilal,

        Pour mettre les valeurs d'une ligne en colonne, il faut utiliser la formule matricielle TRANSPOSE.
        Prenons comme exemple que vos noms soient en A1:E1,
        En A2: =TRANSPOSE(A1:E1).Le résultat sera alors le nom en A1
        On sélectionne alors le même nombre de lignes qu'il y a de noms (5 dans notre exemple), soit A2:A6.Une fois sélectionnées, on fait F2 sur le clavier puis CTRL+Shift+Entrée.
        Les noms de A1:E1 se retrouvent en A2:A6.

        Pour la suite, comme la fonction Transpose ne permet plus le tri de A2:A6, il suffit de "copier" A2:A6 en B2:B6.Un copier/coller ne résoudra pas le problème donc il faut mettre en B2 =A2 et de copier B2 en B3:B6.

        Ensuite, on supprime les doublons en sélectionnant B2:B6 puis Ruban/Données/Supprimer les doublons/Continuer la sélection en cours/Supprimer le doublons/OK/OK

        Enfin, en C2 =NB.SI($1:$1;B2), formule à copier en C2:C6

        On obtient alors en B2:C6, la liste des noms avec le nombre de répétitions.

        Ca fait tellement de choses à faire qu'une macro serait la bienvenue en fait!

        Bonne journée.
        0
    3. Bonjour

      une macro pour convertir et transposer en colonne
      Sub TestSplit1()
      Lig = 10
      L = 2
      '   Nom = Split(Cells(Lig, 1).Value, ",")
      Nom = Split("Pierre, Paul, Jack, Pierre", ",")
         For X = LBound(Nom) To UBound(Nom)
            Feuil2.Cells(L, 3).Value = Trim(Nom(X))
            L = L + 1
         Next
      End Sub
      


      A+
      Maurice
      0