Text?
Bonjour à tous,
J'éprouve quelques soucis à convertir un chiffre en format alphanumérique en format numérique. Je m'explique.
J'exporte une table (Oracle qui est un peu bordélique il faut l'avouer) en Excel et ils ont eu la bonne idée de présenter les montants négatifs en format alphanumérique du genre < 1,425.9820> ou < 111.4947> ou < 12.4527> ou lieu de simplement conserver un formatage numérique.
1) J'ai déjà pu supprimer les deux premiers caractères (le < et le blanc) de la façon suivante : =MID(cellule,3,99) j'utilise volontairement 99 car je ne connais a priori pas la longueur total de tous ces caractères qui varient donc comme je le montre dans les 3 exemples donc je prends tout les caractères qui suivent le blanc après le <. J'obtiens donc 1,425.9820> ou 111.4947> ou 12.4527>
Pour la suite, c'est plus compliqué il me semble car je n'arrive pas à me débarrasser du caractère > qui termine mon texte. J'avais pensé à un MID allant de la droite vers la gauche mais je ne pense pas que cela existe.
De plus, le nombre de caractères devant la point (séparateur de décimales) peut varier et un séparateur est utilisé pour les milliers à savoir une virgule.
In fine, je n'arrive pas à convertir ce texte en nombre négatif.
Auriez-vous une idée? J'utilise Excel en Anglais.
Merci par avance.
Bonjour
As-tu essayé avec la commande "Rechercher" "Remplacer"?
Tu sélectionnes toutes tes données "négatives"
Edition "Rechercher" >, remplacer par (rien )
Puis idem "Techercher <, remplacer par -
Tu peux aussi utiliser une formule
=SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;">";"");"<";"-");CAR(32);"")
Tu peux aussi mettre quelques lignes sur un fichier Excel et l'envoyer pour voir.
Cordialement
Bonjour à tous et bonne fête à Hugues au passage
autre possibilité en français:
=-CNUM(SUBSTITUE(GAUCHE(A1;NBCAR(A1)-1);"< ";""))je regarde pour la formule en anglais...
edit:
CNUM---> VALUE
SUBSTITUE---> SUBSTITUTE
GAUCHE----> LEFT
NBCAr---->LEN
les point-virgules deviennent des virgules
si j'ai bonne mémoire, en anglais, les séparateurs ne sont ils pas la virgule pour les milliers et le point pour la virgule ? j'avoue que...
Re,
Si tu es en séparateur Point, essaie
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2;">";"");"<";"-");CAR(32);"");",";"")*1
et si tu est en séparateur virgule
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2;">";"");"<";"-");CAR(32);"");",";"");".";",")*1
Cordialement
merci pour vos réponses. Je vais un peu analyser tout cela mais voici un fichier Excel et j'ai surfacé en jaune là où le problème se pose.
Voir le fichier joint.
Merci.
-- 02 Avr 2010, 10:27 --
Amadéus a écrit :Re,
Si tu es en séparateur Point, essaie
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2;">";"");"<";"-");CAR(32);"");",";"")*1
et si tu est en séparateur virgule
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2;">";"");"<";"-");CAR(32);"");",";"");".";",")*1
Cordialement
génial ce truc
Je suis parti dans plein de directions différentes sans jamais trouver correctement le bon bout. Je fais peu souvent ce genre de formules mais c'est super.
J'en connais un bon bout tout de même mais encore une fois, on apprend tous les jours. Je bosse surtout avec des tableaux croisés dynamiques. Je vais passer plus souvent par ici je pense. Très intéressant.
Ca fonctionne très bien avec cette formule =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($a1,">",""),"<","-"),CHAR(32),""),",","")*1 mais je vais devoir la décomposer pour la comprendre.
Un grand merci.
Bonjour
J'ai regardé ton fichier.
La formule fonctionne aussi sur les parties en jaune.
Cordialement