Position d'un chiffre dans un texte excel
aqwzsx
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour
J'ai une formule qui retourne la première position d'un chiffre dans une chaine de texte.
Chaine de texte 1 en cellule M2 : « Cass. com 15 février 2008»
Chaine de texte 2 en cellule M2 : « Cass. com 5 février 2008»
Mes chiffres sont dans la feuille « TABLES-REF » avec 1 en C5, 2 en C6, 3 en C7, 4 en C8, 5 en C9, 6 en C10, 7 en C11, 8 en C12, 9 en C13
Ma formule : « =CHERCHE(SUBSTITUE('TABLES-REF'!$C$5:$C$13;"""";"");M2 )»
Resultat pour la chaine de texte 1 => 11
Resultat pour la chaine de texte 2 => erreur
=> Cette formule fonctionne avec les chiffres 1 et 2 mais pas avec les autres et notamment 5
=> Si je mets 5 en C5 et 1 en C9 dans TABLES-REF => cela fonctionne pour ma chaine 2 mais dans le premier exemple, il me renverra la position du chiffre 5 et pas 1 ce qui n'est pas correct
=> Il faudrait qu'il trouve la première position d'un chiffre et que cela fonctionne avec tous les chiffres
Je suis un peu perdu
Merci de votre aide.
J'ai une formule qui retourne la première position d'un chiffre dans une chaine de texte.
Chaine de texte 1 en cellule M2 : « Cass. com 15 février 2008»
Chaine de texte 2 en cellule M2 : « Cass. com 5 février 2008»
Mes chiffres sont dans la feuille « TABLES-REF » avec 1 en C5, 2 en C6, 3 en C7, 4 en C8, 5 en C9, 6 en C10, 7 en C11, 8 en C12, 9 en C13
Ma formule : « =CHERCHE(SUBSTITUE('TABLES-REF'!$C$5:$C$13;"""";"");M2 )»
Resultat pour la chaine de texte 1 => 11
Resultat pour la chaine de texte 2 => erreur
=> Cette formule fonctionne avec les chiffres 1 et 2 mais pas avec les autres et notamment 5
=> Si je mets 5 en C5 et 1 en C9 dans TABLES-REF => cela fonctionne pour ma chaine 2 mais dans le premier exemple, il me renverra la position du chiffre 5 et pas 1 ce qui n'est pas correct
=> Il faudrait qu'il trouve la première position d'un chiffre et que cela fonctionne avec tous les chiffres
Je suis un peu perdu
Merci de votre aide.
2 réponses
-
Bonjour ccm81 et aqwzsx
Il existe une solution (suggérée par Microsoft) en utilisant une expression matricielle :
{=EQUIV(VRAI;ESTNUM(1*STXT(M2;LIGNE($1:$20);1));0)}
bien sur à valider par <Ctrl><Maj><Entrée>
le $1:$20 donne la longueur maxi de la chaine ici limitée à 20 caractères mais on peut remplacer le 20 par la longueur maxi de la chaine à analyser.
A+
Cordialement, -
bonjour
sans macro, je ne vois pas (ce qui ne veut pas dire que ...)
avec (une petite) macro
Alt-F11 pour accéder à l'éditeur puis Insertion/module et copier/coller
à utiliser dans la feuille comme une fonction excel
Public Function rangnum(s) Dim r As Long r = 1 Do If IsNumeric(Mid(s, r, 1)) Then rangnum = r Exit Function End If r = r + 1 Loop While r <= Len(s) rangnum = 0 End Function
bonne suite