Microsoft 365 Recherche 3 mots…

moanin

XLDnaute Impliqué
Bonsoir à tous ;)



Quelqu’un pourrait-il me dire quelle fonction utiliser pour rechercher dans une colonne des lignes comportant par exemple trois mots ?


ex :

Pierre Granier-Deferre
ou
Pierre Granier Deferre

(Il peut y avoir ou pas un tiret)

Merci
 

moanin

XLDnaute Impliqué
Xcuses… :(
Je ne cherche pas "Pierre Granier Deferre" c’est un exemple; je cherche les lignes d’une colonne qui contiennent 3 mots, 3 occurrences, 3 valeurs n’importe lesquels :
Pierre Granier Deferre
Jean Paul Leblanc
Marc Antoine Lucillius

> Mais pas :
Jean Moulin
ni
André Malraux
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour moanin, sylvanu,

Voyez le fichier joint et cette formule matricielle en B2 :
Code:
=SIERREUR(INDEX(A:A;PETITE.VALEUR(SI((ESTNUM(CHERCHE(" * ";SUPPRESPACE(A$2:A$100)))+ESTNUM(CHERCHE(" *-";A$2:A$100)))*ESTERREUR(CHERCHE(" * * ";SUPPRESPACE(A$2:A$100)))*ESTERREUR(CHERCHE("-*-*";A$2:A$100));LIGNE(A$2:A$100));LIGNE(B1)));"")
Si votre Ipad ne l'accepte pas prenez un PC.

A+
 

Pièces jointes

  • 3 mots(1).xlsx
    10.1 KB · Affichages: 7

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Peut être avec un filtre avancé, exemple succinct :
1685126844403.png
 

job75

XLDnaute Barbatruc
Bonjour le forum,

On peut aussi utiliser une fonction VBA :
VB:
Function Extraire_3_mots(colonne As Range, ordre&) As String
Dim tablo, i&, s, n&
tablo = Intersect(colonne, colonne.Parent.UsedRange) 'matrice, plus rapide
For i = 1 To UBound(tablo)
    s = Split(Application.Trim(Replace(tablo(i, 1), "-", " ")))
    If UBound(s) = 2 Then
        n = n + 1
        If n = ordre Then Extraire_3_mots = tablo(i, 1): Exit Function
    End If
Next
End Function
A+
 

Pièces jointes

  • 3 mots VBA(1).xlsm
    17.2 KB · Affichages: 1

Discussions similaires

Réponses
17
Affichages
462
Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 083
Messages
2 085 185
Membres
102 808
dernier inscrit
guo