La fonction CHERCHE de droite à gauche ?

Bonjour à tous !

LA fonction CHERCHE existe t elle en lisant de droite à gauche ?

Je rappelle que la fonction 'cherche' permet de recevoir le N° du caractere au niveau duquel est trouvé le caratère à chercher en lisant de gauche à droite.

Merci d'avance

JF GRASSIN

Bonjour,

La solution ne serait-elle pas de calculer le nombre de caractères de la chaîne de caractères - la position du caractère cherché.

Le problème des doublons reste : la fonction CHERCHE renvoie la position du 1er caractère à partir de la gauche et je suppose que tu désires le 1er caractère à partir de la droite.

Exemple :

POISON en A1 : =NBCAR(A1)-CHERCHE("S";A1)+1 renvoie 3

Mais pour POISSON ce sera 4, alors qu'il faudrait que ce soit aussi 3

Si c'est le 1er caractère à partir de la droite, il me semble que la fonction SUBSTITUE pourrait apporter une solution

Je regarde dès que j'ai cinq minutes.

dré

Re,

A essayer, "s" étant le caractère à positionner :

=NBCAR(A1)-CHERCHE("µ";SUBSTITUE(A1;"s";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"s";""))))+1

dré

dré

J'ai limpression que Ca marche ! Merci !

Mais je ne comprends pas la logique de la formule !

Peux tu m'aider en la commentant ?

Merci d'avance

JFG

Bonsoir,

Je vais essayer d'être simple, mais ce n'est pas aussi simple que la formule !

Sachant que la fonction SUBSTITUE permet de choisir la position de la valeur cherchée (s'il y en a des doublons) :

SUBSTITUE(texte;texte_ancien;texte nouveau;[no_position])

il faut connaître le nombre de doublons, ce qui correspond à la postion du dernier doublon.

Pour compter le nombre de doublons, on compte le nombre de caractères du texte, duquel on soustrait le nombre de caractères du même texte mais dans lequel on a substitué la valeur cherchée par rien ("") :

=NBCAR(A1)-NBCAR(substitue(A1;"s";"")

le dernier argument [no_position] est facultatif puisque'on désire les remplacer tous.

Cette formule renvoie 2 "s" pour POISSON

Ensuite on remplace cette dernière valeur par un caractère qu'on a peu de chances de rencontrer dans le texte, ici le choix s'est porté sur µ, mais peut tout aussi bien être £ ou ù, §, .

=SUBSTITUE(A1;"s";"µ";2) qui renvoie : POISµON

Puis on cherche la position de ce µ :

=CHERCHE("µ";"POISµON") qui renvoie 5

En soustrayant le nombre de caractères du texte (7) de la posotion trouvée (5) on trouve 2, auquel il faut ajouter 1 pour trouver la position du µ

Il ne reste plus qu'à assembler ces diverses formules en une seule pour obtenir le résultat.

=NBCAR(A1)-CHERCHE("µ";SUBSTITUE(A1;"s";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"s";""))))+1

En bleu : le nombre de "s" ou la position du dernier "s"

En rouge + bleu : on substitue le dernier "s" par "µ"

En marron + rouge + bleu : on trouve la position de dernier "s" à compter à partir de la gauche

Il reste à soustraire cette position du nombre de caractères du texte et d'y ajouter 1 pour trouver la position du premier "s" à compter à partir de la droite.

dré

dré

Je ne veux pas avoir l'aire d'etre trop flatteur, mais j'ai trouvé la solution tres intellligente.

Merc d'avoir pris le temps de l'explication.

PS Ce forum est extra !

Merci encore

JFG

Bonjour,

J'avais aussi suivi une autre piste.

Si on parvenait à inverser le texte, faire de POISSON → NOSSIOP, la fonction CHERCHE (ou TROUVE) convient fort bien.

J'ai bien trouvé une formule matricielle qui le fait pour une valeur numérique (il n'existe que 10 chiffres) mais pas pour une valeur alphabétique (plus de 200 caractères différents).

Avec une colonne supplémentaire j'y parviens, mais pas en direct.

Ou bien avec une seule formule, mais bien plus longue que celle proposée.

Par macro (fonction personnalisée) cela ne devrait pas poser problème, mais là ce n'est pas ma tasse de thé.

dré

Merci

J'ai trouvée la 1° methode tres elegante et tres efficace : en tout cas elle a reglé mon probleme.

Cordialement

JFG

Rechercher des sujets similaires à "fonction cherche droite gauche"