Deconcatener et filtrer

Pyarilal Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 Maurice -
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
A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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
oz@work Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   3
 
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
Pyarilal Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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
oz@work Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   3
 
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
Maurice
 
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