Recherchev sensible aux formats

R

René du var

Guest
Bonsoir le forum,

Voici une formule qui récupère des chiffres à partir de l'exemple suivant :

DONNEE
644121309100000/6853

FORMULE
=SI(STXT(SUBSTITUE(A17;"" /"";""/"");16;1)=""/"";GAUCHE(A17;15);
SI(STXT(SUBSTITUE(A17;""/ "";""/"");NBCAR(A17)-15;1)=""/"";DROITE(A17;15);""Matricule tronqué"")) "

Chiffre récupérer :

RESULTAT
644121309100000

Pour cette partie tout va bien mais quand je fais référence à ce résultat avec la formule ci-dessous ca ne fonctionne pas toujours elle me renvoie
#N/A alors je place CNUM au début de la formule ci-dessus mais ça ne marche pas toujours

Est-il possible de tester le format dans la formule ?
Pour le moment le seul moyen est de taper le résultat à la main


=RECHERCHEV(M18;BDD;2;FAUX)

Merci

René du var
 
M

Monique

Guest
Bonjour,
Pour rendre numérique le résultat de ta formule, tu multiplies par 1 (ou tu divises par 1) les fonctions Droite() et Gauche()
=SI(STXT(SUBSTITUE(A17;"/";"/");16;1)="/";GAUCHE(A17;15)*1;SI(STXT(SUBSTITUE(A17;"/";"/");NBCAR(A17)-15;1)="/";DROITE(A17;15)*1;"Matricule tronqué"))
GAUCHE(A17;15)*1
DROITE(A17;15)*1

à condition que M18 soit numérique dans l'exemple que tu donnes :
=RECHERCHEV(M18;BDD;2;FAUX)

Tu peux aussi faire un essai en modifiant cette formule :
=RECHERCHEV(TEXTE(M18;"0");BDD;2;FAUX)
Elle ne recherchera que du texte
 
R

René du var

Guest
re,

non rien !

de toute façon la formule récupère toujours 15 chiffres

les données proviennent du même fichier texte au départ

comme je disais parfois j'ajoute CNUM ou bien je suis obligé de taper à la main

merci

René du var
 
M

Monique

Guest
Re,

Index Equiv à la place de =RECHERCHEV(M18;BDD;2;FAUX)
On admet que BDD soit D22:E25

=INDEX(E$22:E$25;EQUIV(M18*1;D$22:D$25;0))
=INDEX(1ère colonne;EQUIV(M18*1;2ème colonne;0))

On peut le faire dans l'autre sens :
=INDEX(E$22:E$25;EQUIV(M18;TEXTE(D$22:D$25;"0");0))
mais dans ce cas c'est une formule matricielle, à valider par ctrl, maj et entrée.
 
R

René du var

Guest
Re,

Rien à faire

merci quand même

A mon avis le problème vient du résultat de la formule :

=SI(STXT(SUBSTITUE(A17;"" /"";""/"");16;1)=""/"";GAUCHE(A17;15);
SI(STXT(SUBSTITUE(A17;""/ "";""/"");NBCAR(A17)-15;1)=""/"";DROITE(A17;15);""Matricule tronqué"")) "


René du var
 
M

Monique

Guest
Re,

C'est vrai que quand je l'ai copiée, Excel n'a rien voulu savoir, j'ai enlevé les guillemets doubles et ça donne :
=SI(STXT(SUBSTITUE(A17;"/";"/");16;1)="/";GAUCHE(A17;15);SI(STXT(SUBSTITUE(A17;"/";"/");NBCAR(A17)-15;1)="/";DROITE(A17;15);"Matricule tronqué"))
Et c'est avec celle-là qu'on arrive à un bon résultat avec Index Equiv.

Mais celle-ci est identique, en plus simple et moins compliqué :
=SI(STXT(A17;16;1)="/";GAUCHE(A17;15);SI(STXT(A17;NBCAR(A17)-15;1)="/";DROITE(A17;15);"Matricule tronqué"))
 

Statistiques des forums

Discussions
314 168
Messages
2 106 708
Membres
109 669
dernier inscrit
e.lequenven