Une sorte de recherche v

BAT

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à réaliser une formule en vain. Voici l'objectif de la formule :

Si la cellule testée (A1) contient un des mots de la colonne E, alors la formule affiche la valeur de la colonne F. Si elle contient plusieurs valeurs de la colonne E, alors la formule affiche "multi".

Voici un fichier excel présentant le besoin.

Merci à tous pour votre précieuse aide.
 

Pièces jointes

  • test.xlsx
    8.5 KB · Affichages: 54
  • test.xlsx
    8.5 KB · Affichages: 51
  • test.xlsx
    8.5 KB · Affichages: 56

tototiti2008

XLDnaute Barbatruc
Re : Une sorte de recherche v

Bonjour BAT,

en B1

Code:
=SI(SOMME(ESTNUM(CHERCHE($E$2:$E$4;A1))*1)>1;"multi";SI(SOMME(ESTNUM(CHERCHE($E$2:$E$4;A1))*1)=1;INDEX($F$2:$F$4;EQUIV(VRAI;ESTNUM(CHERCHE($E$2:$E$4;A1));0));""))

à valider par Ctrl+Maj+Entrée
 

BAT

XLDnaute Occasionnel
Re : Une sorte de recherche v

You ouuuuu !
Merci merci !
Juste pour savoir mais je suppose que c'est pas possible autrement qu'en VBA mais ... Est-il envisageable qu'à la place de multi la forumle concetène les valeurs. Par ex elle affichera VEAU & VACHE dans l'exemple ci dessus ?
Merci par avance
 

tototiti2008

XLDnaute Barbatruc
Re : Une sorte de recherche v

Re,

En effet, personnellement, je ne vois pas de solution hors VBA pour ça
Un essai

dans un module

Code:
Function RechText(Texte As String, Plage As Range, Colonne As Long) As String
    RechText = ""
    For i = 1 To Plage.Rows.Count
        If InStr(LCase(Texte), LCase(CStr(Plage.Cells(i, 1).Value))) > 0 Then
            RechText = RechText & CStr(Plage.Cells(i, Colonne).Value) & " "
        End If
    Next i
    If Len(RechText) > 0 Then RechText = Left(RechText, Len(RechText) - 1)
End Function

en B1

Code:
=rechtext(A1;$E$2:$F$4;2)
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 201
Membres
103 762
dernier inscrit
rouazali