OVH Cloud OVH Cloud

Comparaison de chaine de caractères

15 réponses
Avatar
Richard de Toulouse
Bonjour à tous,

Si je veux détecter une chaine de caractère dans une autre, il y a la
fonction CHERCHE.
Mais cette fonction implique que mon 1er argument (la chaine recherchée)
soit exactement déterminé.
Exemple RECHERCHE ( "xxx"; "yyyyxxxyyyy";)

Hors (dans mon cas) la chaine "xxx" se trouve au milieu d'une chaine.
Il me faudrait donc une fonction du type :
CHERCHE ( "zzzzzxxxzzzz"; "yyyyxxxyyyy";)

A priori cette fonction n'existe pas mais il est peut-être possible de
résoudre ce problème avec d'autres combinaisons de fonction ?

A noter que je ne souhaite pas écrire du VB.

Merci d'avance.

5 réponses

1 2
Avatar
JpPradier
"Richard de Toulouse" a écrit dans le
message de news:

Je sens que je commence à être compris ;-)


;-))

Si j'ai tout suivi (merci à Michel pour les éclaircissements) :

=INDEX(X1:X50;EQUIV(FAUX;ESTERREUR(CHERCHE(X1:X50;A1));0))

Fomule matricielle à valider par Ctrl+Maj+Entrée

j-p

Avatar
Michel Gaboly
Bonsoir,

Bravo pour ta formule ;-))

Dans la demande de Richard, je ne comprends pas bien s'il veut obtenir la chaîne trouvée, ce que donne ta formule, ou
l'adresse de la cellule contenant cette chaîne (X1,X2,X2)


A la place de B1,B2,B3 lire X1,X2,X2 (désolé)


Il me semble qu'elle n'est pas utilisable dans mon cas, car c'est "x xx" qui
est l'élément variable.

Je concrétise mon cas par un exemple :

A1 = yyyyyxxxyyyyy
A2 = yyaaayyyyy
A3 = yyyyyyybbbxxx
ect

X1 = xxx
X2 = aaa
X3 = bbb
etc..

En B1 je veux indiquer qu'elle valeur (B1,B2,B3,...) j'ai trouvé d ans A1.
En B2 je veux indiquer qu'elle valeur (B1,B2,B3,...) j'ai trouvé d ans A2.
En B3 je veux indiquer qu'elle valeur (B1,B2,B3,...) j'ai trouvé d ans A3.





Pour obtenir éventuellement cette adresse, on peut adapter ainsi ta for mule (pour la ligne 1) :

­RESSE(EQUIV(INDEX(X$1:X$50;EQUIV(FAUX;ESTERREUR(CHERCHE(X$1:X$4;A1)) ;0));X$1:X$50;0);COLONNE(X1);4)


NB - dans les 2 cas, il faut utiliser X$1:X$50 et non X1:X50 sous peine d 'obrenir un résultat aberrant lors de la
recopie vers le bas.


"Richard de Toulouse" a é crit dans le
message de news:
Je sens que je commence à être compris ;-)


;-))

Si j'ai tout suivi (merci à Michel pour les éclaircissements) :

=INDEX(X1:X50;EQUIV(FAUX;ESTERREUR(CHERCHE(X1:X50;A1));0))

Fomule matricielle à valider par Ctrl+Maj+Entrée

j-p




--
Cordialement,

Michel Gaboly
www.gaboly.com


Avatar
JpPradier
Bonsoir Michel

Merci, mais c'est toi qui a fait le plus gros du boulot :-)
Attendons la réponse de Richard.

j-p
Avatar
Michel Gaboly
Je n'ai fait qu'un travail d'accoucheur ;-))

Bonsoir Michel

Merci, mais c'est toi qui a fait le plus gros du boulot :-)
Attendons la réponse de Richard.

j-p




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Richard de Toulouse
Je n'ai qu'un mot à dire : Bravo

L'histoire de valider la formule par crtl+maj+enter est assez troublant....

Je conserve précieusement cette méthode.

A+




Je n'ai fait qu'un travail d'accoucheur ;-))

Bonsoir Michel

Merci, mais c'est toi qui a fait le plus gros du boulot :-)
Attendons la réponse de Richard.

j-p




--
Cordialement,

Michel Gaboly
www.gaboly.com




1 2