extraire nombre ( de 100 a 100 000) d'une cellule Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
f
foufie
Membre habitué
Membre habitué
Messages : 127
Inscrit le : 4 mai 2010
Version d'Excel : 2007

Message par foufie » 3 janvier 2015, 22:51

bonjour

je cherche a extraire des nombres d'une phrase

le nombre que je cherche a extraire peux varier de 1 000 a 9 000 000
bien entendu il n'a jamais la meme place dans la phrase et il peux y avoir d'autres nombres dans la pharse mais qui n'ont rien a voir



ex :: -toto a trois maison une de - 1000 € ,cette maison n'est pas - top au - 36 rue du lac - 89 522 cedex -
ex2 : la 2 imie maison de toto a une valeur de - 1 000 000 € c'est une jolie - villa au - 90 avenue du lac - 21 255 cedex

le chiffre que je cherche est tjs une somme , après le chiffre j'ai un espace et le signe € et avant le chiffre j'ai tjs " - "mais par contre" -" je le trouve a plusieurs endroits dans la phrase

voici la formule que 'jutilise =STXT(B35;TROUVE("€";B35;1)-8;7)

cela ne fonctionne pas vraiment
Avatar du membre
R@chid
Membre impliqué
Membre impliqué
Messages : 2'804
Appréciations reçues : 39
Inscrit le : 14 novembre 2012
Version d'Excel : 2019 FR

Message par R@chid » 3 janvier 2015, 23:13

Bonsoir @ tous,
voir PJ si cela te convient.
foufie.xlsx
(9.34 Kio) Téléchargé 23 fois
@ + +
"Donnez moi un point d'appui et je soulèverai le monde"
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'073
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 3 janvier 2015, 23:16

Bonsoir et Bonne Année !

Si votre texte est en cellule A1 :

=STXT(A1;TROUVE("de - ";A1)+5;TROUVE(" €";A1)-TROUVE("de - ";A1)-5)

TROUVE("de - ";A1) : on recherche la position de départ de "de - " qui compte 5 caractères
+5 : donc on rajoute 5 pour avoir l'emplacement du premier chiffre du nombre recherché
TROUVE(" €";A1) : on recherche la position de départ des caractères " €"
-TROUVE("de - ";A1)-5 : on retire l'ensemble des caractères avant le chiffre
STXT : on extrait la partie du texte qui se trouve entre "de - " jusqu'au texte " €"

@ bientôt

LouReeD

Décidemment !!! j'aurais toujours un train de retard ! :lol:

En plus il y a le CNUM pour passer en chiffre !!!
Vite à moi la vision super plus de araignées !!!! :wink:

R@chide je m'incline ;-)

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
f
foufie
Membre habitué
Membre habitué
Messages : 127
Inscrit le : 4 mai 2010
Version d'Excel : 2007

Message par foufie » 4 janvier 2015, 05:51

merci de vos réponses

ah oui bonne et heureuse a année a tous et toutes

pour l'instant aucune ne fonctionne .

cnum ne fonctionne pas , je suppose c'est a cause des séparateur de milliers ( code 160) qui sont dans la phrase
car lorsque ma formule marche 'j'ai du utiliser la formule ci dessous arrondir les angles et la convertir en chiffre


transforme ce que j'ai trouve en chiffre >>
SI(ESTERREUR(CHERCHE(CAR(160);O28))=FAUX;(GAUCHE(O28;CHERCHE(CAR(160);O28)-1) & DROITE(O28;NBCAR(O28)-CHERCHE(CAR(160);O28)))*1;O28*1)
cela dit vos reponses m'aide .

je ne sais pas trop comment ecrire au format excel la formule pour le moment

mais la formule pourrait etre = trouve "€" , a partir de € cherche a gauche le "-" et extrait le texte

je pensais avoir trouve une solution intermédiaire en 2 tps , et en cherchant de nouveau €
mais cela ne fonctionne pas car parfois le - il y a deja 2 , 3 ou 4 - avant d'avoir les sommes
Modifié en dernier par foufie le 4 janvier 2015, 10:08, modifié 1 fois.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'859
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 4 janvier 2015, 09:45

Bonjour et bonne année à tous ...

Sans apporter de solution concrète, je pense que dans un cas comme celui-ci à géométrie variable, il faudrait utiliser les fonctions régulières. C'est une piste peut-être à explorer, sinon une macro devrait s'en sortir.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'073
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 4 janvier 2015, 09:57

bonjour

ci-joint mon fichier
Cela fonctionne avec ma solution, du moins chez moi....

@ bientôt

Loureed

Deuxième fichier joint pour la deuxième phrase.... Ca marche aussi ! ;-)

LouReeD a écrit :Bonsoir et Bonne Année !

Si votre texte est en cellule A1 :

=STXT(A1;TROUVE("de - ";A1)+5;TROUVE(" €";A1)-TROUVE("de - ";A1)-5)

TROUVE("de - ";A1) : on recherche la position de départ de "de - " qui compte 5 caractères
+5 : donc on rajoute 5 pour avoir l'emplacement du premier chiffre du nombre recherché
TROUVE(" €";A1) : on recherche la position de départ des caractères " €"
-TROUVE("de - ";A1)-5 : on retire l'ensemble des caractères avant le chiffre
STXT : on extrait la partie du texte qui se trouve entre "de - " jusqu'au texte " €"

@ bientôt

LouReeD
Je pense bien que tout est dit... on cherche le "de - " afin de ne pas se tromper de "-"
"-toto a trois maison une de - 1000 € ,cette maison n'est pas - top au - 36 rue du lac - 89 522 cedex - "

dans la première phrase il est en position 26 pour de "d" donc le chiffre commence à 26 + 5 qui correspond à "d"+"e"+" "+"-"+" "
31
on cherche la position de " €" qui est en position 35
on extrait donc le texte qui se trouve entre la position 31 à 35-1 = 31à34 = 1000

C'est ce que fait la formule, comme c'est du texte et que vous voulez peut-être des chiffre, le tout multiplié par 1 !

Bonne journée

LouReeD
Classeur2.xlsx
(9.38 Kio) Téléchargé 14 fois
Classeur1.xlsx
(9.38 Kio) Téléchargé 13 fois
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
f
foufie
Membre habitué
Membre habitué
Messages : 127
Inscrit le : 4 mai 2010
Version d'Excel : 2007

Message par foufie » 4 janvier 2015, 10:24

merci de votre aide , je ne doute pas que votre code focntionne mais

le souci est que j'ai volontairement réduits et simplifié ( sinon elles font plus de 300 caractères ) les phrases en


et je pensais l'avoir écrit dans mon précédent post (ce n'es pas le cas ) mais il n'y a pas forcement "de "
dans la phrase

voici une autre par exemple
'-toto a trois maisons de style avec une valeurs - 30 000 € ,cela fait bcp de maisons , -3 maisons dans un lotissement a lille

le point de repère est € ( il y en as un seul dans la phrase ) et notre valeurs commence forcement avec " - " mais ce n'est pas le premier "-" ni meme un "-" fixe il peut etre 2 ,3 imie ,4 ieme ect ..
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'697
Appréciations reçues : 699
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 4 janvier 2015, 10:32

Bonjour,
Je propose la formule la plus longue.
Une formule à la Tulipe_3_4 :D
=STXT(STXT(A1;1;TROUVE("€";A1)-1);
TROUVE("-";STXT(A1;1;TROUVE("€";A1)-1);
NBCAR(STXT(A1;1;TROUVE("€";A1)-1))-NBCAR(SUBSTITUE(STXT(A1;1;TROUVE("€";A1)-1);"-";"")))+2;
NBCAR(STXT(A1;1;TROUVE("€";A1)-1)))*1
C'est de plus plus élégant que les propositions de LouReed et de R@chid. :lol:
Bonne année à toutes et tous.
Cdlt.

Edit:
xlp foufie.xlsx
(8.96 Kio) Téléchargé 10 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'859
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 4 janvier 2015, 11:09

Plus élégant ?
foufie.xlsm
(17.99 Kio) Téléchargé 14 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'697
Appréciations reçues : 699
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 4 janvier 2015, 11:46

Re,
Une proposition plus abordable pour le commun des mortels . :D
xlp foufie.xlsm
(14.49 Kio) Téléchargé 14 fois
Option Explicit
Public Function Montant_EUR(str)
Dim tmp
    If IsEmpty(str) Then
        Montant_EUR = vbNullString
        Exit Function
    End If
    tmp = Split(str, "€")(0)
    tmp = Split(tmp, "-")
    Montant_EUR = CLng(tmp(UBound(tmp)))
End Function
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message