Recherchev ou équivalent et concatenation des resultats

mjx

XLDnaute Nouveau
Bonjour,

sur une feuille excel j'ai une liste de références et de noms.
1 paul
1 jean
2 pierre
2 bis jean
2 bis paul
2 bis marc
3 pierre
Je trie ensuite sans doublon la liste de nom, en copiant le résultat sur une autre feuille. Je cherche ensuite une formule pour avoir le résultat suivant sur 2 colonnes, la deuxième étant une concaténation dans la même colonne:
paul 1 et 2 bis
pierre 2 et 3
...
Je ne trouve pas de formule matricielle qui permettrait de concatener les chaines de caractères (ie au lieu de faire une somme avec condition, on fait une concaténation avec condition).
Je souhaiterais trouver un résultat sans VBA de préférence.

Merci!
Marc
 

wilfried_42

XLDnaute Barbatruc
Re : Recherchev ou équivalent et concatenation des resultats

Bonjour à tous

Concatener, ne fonctionne pas en matricielle, il y a MCONCAT, dans la macro complémentaire MoreFunc de laurent longre je crois.. Personnellement, j'ai préféré réécrire cette Fonction, pour 2 raisons :
1 - elle se trouve dans mon classeur et je n'ai pas Besoin de telechargé MoreFunc et de le lier sur chacun des Pc
2 - Charger une bibliotheque complete pour un usage restreint de 1 voire 2 fonctions alourdit.......

voici le code de la fonction Concatener_Matrice à placer dans un module
Code:
Public Function Concatener_Matrice(byval Matrice as variant, separateur as string) as string
        Dim c as variant
        Application.Volatile
        For each c in matrice
             Concatener_Matrice = Concatener_Matrice & C & separateur
        Next
        if len(concatener_matrice)>0 then
             Concatener_Matrice = Left(Concatener_Matrice,Len(Concatener_Matrice)-Len(separateur))
        End If
End Function
 

mjx

XLDnaute Nouveau
Re : Recherchev ou équivalent et concatenation des resultats

Bonjour Excalibur et bonjour Wilfried,

Merci de vos réponses rapides!
Excalibur : je connais bien l'opérateur de concaténation. Mon but est de passer le plus rapidement possible des deux colonnes que j'ai décrite à deux autres colonnes, l'une étant la liste des noms par ordre alphabétique sans doublon, l'autre la totalité des références associées à chaque nom.
ie:
Col A ColB
Pierre 2 et 3 et 5 et 9 (dans le cas où j'ajoute un séparateur de concaténation "et")

Wilfried : je tente d'utiliser la formule comme un somme(si) matriciel, soit =Concatener_Matrice(SI(F1:F589=L2;B1:B589;"");" et ") puis pomme retour (je suis sur mac). Pour l'instant sans succès. Est-ce que j'interprète mal l'utilisation de la fonction ?
(PS: les noms non triés sont en colonne F, le nom cible est en L2, les réf en B)


Merci
Marc
 

Monique

Nous a quitté
Repose en paix
Re : Recherchev ou équivalent et concatenation des resultats

Bonjour,

Une formule pour faire une liste des noms, sans doublon et par ordre alphabétique
Formule matricielle, à valider par ctrl, maj et entrée

Une formule pour concaténer les références selon le nom en 1 seule cellule
(4 formules concaténées, on peut allonger...)
Ou bien une méthode sur 1 cellule puis 3 cellules à la fois
Formules matricielles
 

Pièces jointes

  • ConcatenerMjx.zip
    4.8 KB · Affichages: 586

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16