OVH Cloud OVH Cloud

extraire un nombre

9 réponses
Avatar
olivier
bonjour,
j'utilise un tableau d'un de mes fournisseurs (que je ne veux pas modifier)
et je souhaiterais extraire un nombre d'une chaine de caractère pour utilisé
dans une formule.
ex :25 kg => récupération du nombre "25"
5 litres => récupération du nombre "5"
Fût de 160 kg => récupération du nombre "160"
Est-ce possible ?

Merci d'avance

9 réponses

Avatar
AV
j'utilise un tableau d'un de mes fournisseurs (que je ne veux pas modifier)
et je souhaiterais extraire un nombre d'une chaine de caractère pour utilisé
dans une formule.> Fût de 160 kg => récupération du nombre "160"


Matricielle (validation par ctrl+maj+entrée) :
=1*(STXT(A1;EQUIV(0;(ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1);
0);NBCAR(A1)-SOMME((ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1)))
)

AV

Avatar
Rai
Bonjour,

Une solution (parmi d'autres), pour un texte situé en A1 :
=GAUCHE(A1;TROUVE(" ";A1))

A recopier sur les cellules intéressées

Tu peux remplacer A1 par ='[Classeur1.xls]Feuil1'!A1 pour récupérer les données d'un autre classeur.

Bonne journée

Rai

"olivier" a écrit dans le message de news:
bonjour,
j'utilise un tableau d'un de mes fournisseurs (que je ne veux pas modifier)
et je souhaiterais extraire un nombre d'une chaine de caractère pour utilisé
dans une formule.
ex :25 kg => récupération du nombre "25"
5 litres => récupération du nombre "5"
Fût de 160 kg => récupération du nombre "160"
Est-ce possible ?

Merci d'avance




Avatar
AV
Une solution (parmi d'autres), pour un texte situé en A1 :
=GAUCHE(A1;TROUVE(" ";A1))


Il me semble qu'il va y avoir problème avec des données (comme dans la demande)
du type :
"Fût de 160 kg" ou "La clé de 12"

AV

Avatar
Rai
Effectivemnt, tuas (encore une fois) raison Alain.
La formule ne fonctionne, bien entendu, que pour les données du type "125 Kg de Vitamine C", "289 Tonnes de Café" .... comportant la partie chiffre au début avec un espace en séparation.

Bonne journée, et au plaisir de lire tes interventions

Rai

"AV" a écrit dans le message de news: %23NpYfU6$
Une solution (parmi d'autres), pour un texte situé en A1 :
=GAUCHE(A1;TROUVE(" ";A1))


Il me semble qu'il va y avoir problème avec des données (comme dans la demande)
du type :
"Fût de 160 kg" ou "La clé de 12"

AV





Avatar
Daniel.M
Bonjour,

Matricielle (validation par ctrl+maj+entrée) :

=1*(STXT(A1;EQUIV(0;(ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1);


0);NBCAR(A1)-SOMME((ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1)))

)


Une variation sur le même thème (et parce que je suis un peu jaloux aussi) :

=1*STXT(A1;EQUIV(0;-ESTERREUR(-STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1));0);
SOMME(--ESTNUM(-STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))))

Elle a les mêmes restrictions : il ne doit y avoir qu'un nombre dans le texte en
A1 (ce qui correspond à l'énoncé initial). Autrement, le recours à une fonction
personnalisée VBA s'impose.

Salutations,

Daniel M.

Avatar
Modeste
quid ???

Fût 160 kg 160 160
Borne 120 km 120 120
Bidon 25 litres 25 25
Disk 80 go 80 80
Fichier 1 275 ko #VALEUR! 1275
103 944 192 bytes free #VALEUR! 103944192
Largeur 2m50 #VALEUR! 250

;-))) AV
uniquement pour le schmilblick...
28/02/2001 avec la complicité de LL

Function CalculExp(Expression)
For i = 1 To Len(Expression.Value)
If InStr(1, ",()+*-/^0123456789", Mid(Expression, i,
1)) Then sExp = sExp + Mid(Expression, i, 1)
Next
CalculExp = Evaluate(sExp)
End Function

-----Message d'origine-----
Effectivemnt, tuas (encore une fois) raison Alain.
La formule ne fonctionne, bien entendu, que pour les
données du type "125 Kg de Vitamine C", "289 Tonnes de

Café" .... comportant la partie chiffre au début avec un
espace en séparation.

Bonne journée, et au plaisir de lire tes interventions

Rai

"AV" a écrit dans le
message de news: %23NpYfU6

$
Une solution (parmi d'autres), pour un texte situé en
A1 :



=GAUCHE(A1;TROUVE(" ";A1))


Il me semble qu'il va y avoir problème avec des
données (comme dans la demande)


du type :
"Fût de 160 kg" ou "La clé de 12"

AV


.






Avatar
AV
quid ???
Fût 160 kg 160 160
Borne 120 km 120 120
Bidon 25 litres 25 25
Disk 80 go 80 80

Tu as mal testé !

Pour les autres exemples : ils ne correspondent pas au cahier des charges fourni
donc HS

Quid de la solution vba que tu proposes avec
1 275 kg de carottes et 45 de patates --> 127545
ou bien
2m50 --> 250

Pfff....
AV
Avatar
AV
=1*STXT(A1;EQUIV(0;-ESTERREUR(-STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1));0);
SOMME(--ESTNUM(-STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))))


Pffff...tu tiens même pas tes engagements :
Tu as dit solennellement que tu étais pour "l'éradication de l'ambiguïté"
Alors va falloir éliminer les - et les -- !

Te seras dénoncé à qui de droit !
AV

Avatar
Daniel.M
Pffff...tu tiens même pas tes engagements :
Tu as dit solennellement que tu étais pour "l'éradication de l'ambiguïté"


:-)
Les promesses... tu sais!

Alors va falloir éliminer les - et les -- !


Je suis très flexible et donc prêt à admettre que les "--" sont facultatifs.
L'idée du "-" (au lieu du *1) sauve un caractère lorsqu'employé avec ESTERREUR
ou ESTNUM, m'apparaît originale et ça, j'y tiens :-)

Te seras dénoncé à qui de droit !


Oh non! Pas un autre Président qui part en croisade. ;-))


Daniel M.