Microsoft 365 [Résolu]Index equiv contenant caractère

  • Initiateur de la discussion Initiateur de la discussion Etn
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etn

XLDnaute Occasionnel
Bonjour,

Le titre n'est pas très clair mais l'exemple l'est (enfin j'espère).

J'ai besoin de retrouver, en fonction d'une liste qu'on peut incrémenter, une chaine de caractère.

Exemple : En colonne A j'ai :
DURAND Jean Pierre
MARTIN Jean Pierre

En colonne B je souhaiterais obtenir :
Jean Pierre
Jean Pierre

Et cela fonctionnerait uniquement si j'ai dans ma liste en colonne E "Jean Pierre" (ce qui permettrait de retrouver le prénom).
Donc si dans ma liste colonne E, à la place de "Jean Pierre", je mets "Jean P", il me donnera "Jean P" en colonne B.

Evidemment c'est un exemple, je ne souhaite pas retrouver de prénom, j'aurais vraiment besoin de m'appuyer sur la chaine de caractère présente dans ma liste colonne E.

J'ai joint un exemple.

Merci d'avance !
Etn
 

Pièces jointes

@djidji59430 je me suis mal exprimé, c'est dans la colonne C que ça affiche "#PROPAGATION!" si le texte de la colonne A n'existe pas

2025-06-12_23-25-16.png
 
Bonjoue Etn, le forum,

Avec une fonction VBA c'est simple et fonctionne sur toute version Excel :
VB:
Option Compare Text 'la casse est ignorée
Const sep = ", " 'séparateur, modifiable

Function RechercheListe(texte As String, liste As Range) As String
Dim tablo, i As Long, x As String
tablo = liste.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo)
    x = tablo(i, 1)
    If x <> "" Then If InStr(texte, x) Then RechercheListe = RechercheListe & sep & x
Next i
RechercheListe = Mid(RechercheListe, Len(sep) + 1)
End Function
Formule en B2 =RechercheListe(A2;E$2:E$4)

Pour rendre dynamique la plage E$2:E$4 le plus simple est de créer un tableau structuré en colonne E.

A+
 

Pièces jointes

Perso sans VBA j'utiliserais plutôt la fonction JOINDRE.TEXTE avec en B2 :
Code:
=JOINDRE.TEXTE(", ";VRAI;REPT(Tableau1[Liste];ESTNUM(CHERCHE(Tableau1[Liste];A2))))
Elle concatène avec le séparateur ', " et existe sur les versions Excel 2019 et suivantes.

Chez moi sur Excel 2019 elle nécessite la validation matricielle par Ctrl+Maj+Entrée, inutile sur MS 365.
 

Pièces jointes

Bonjour à tous😉,

Juste pour le fun...
Comme d'habitude avec la recherche de mots, il faut souvent avoir conscience de cas particuliers. Un des cas particuliers ici est la situation où dans la liste des mots à chercher, un des mots est contenu dans un autre. Dans ce cas, la recherche aboutit à un résultat inexact.

Exemple : La liste des mots recherchés contient le mot Anne ainsi que le mot Marianne. Le terme XXXmarianneYYY renverra Anne,Marianne au lieu de simplement Marianne soit un mot en trop.
Ou bien si vous recherchez "Jean", "Pierre", "Jean Pierre" alors le terme XXXJean-PierreYYY renverra Jean,Pierre soit deux mots dont aucun n'est le résultat souhaité (on aurait souhaité "Jean Pierre").

Ce n'est pas rédhibitoire, il faut juste vérifier un peu la liste des mots recherchés pour voir si le cas se produit.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
562
Retour