Fonction TRONQUE résultats anormaux
Résolu/Fermé
funnyfranky
-
Modifié par pijaku le 16/07/2015 à 08:35
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 16 juil. 2015 à 20:03
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 16 juil. 2015 à 20:03
A voir également:
- Tronque excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
7 réponses
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
15 juil. 2015 à 21:42
15 juil. 2015 à 21:42
Bonsoir,
Essaye comme cela
=(J4-TRONQUE(J4))*100
Essaye comme cela
=(J4-TRONQUE(J4))*100
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 15/07/2015 à 21:53
Modifié par Patrice33740 le 15/07/2015 à 21:53
Bonjour,
Il s'agit d'un problème d'arrondi lors de la conversion du décimal en binaire (malheureusement tous les processeur actuels travaillent en binaire).
Tu peux utiliser la formule suivante :
=MOD(ENT(J4*100)/100;1)*100
Cordialement
Patrice
Il s'agit d'un problème d'arrondi lors de la conversion du décimal en binaire (malheureusement tous les processeur actuels travaillent en binaire).
Tu peux utiliser la formule suivante :
=MOD(ENT(J4*100)/100;1)*100
Cordialement
Patrice
Merci à vous deux pour vos réponses et explications. Je vais vous donner plus d'info car je n'ai rien pu régler. J'utilise ceci à l'intérieur d'une fonction RECHERCHEV donc je dois utiliser un TRONQUE de plus sinon j'ai une erreur "#N/A" en utilisant que:
=RECHERCHEV((J4-TRONQUE(J4))*100;Tableau1;2;FAUX)
ou même:
=RECHERCHEV(MOD(ENT(J4*100)/100;1)*100;Tableau1;2;FAUX)
et en faisant ceci je n'obtiens toujours pas le bon résultat:
=RECHERCHEV(TRONQUE(MOD(ENT(J4*100)/100;1)*100);Tableau1;2;FAUX)
=RECHERCHEV((J4-TRONQUE(J4))*100;Tableau1;2;FAUX)
ou même:
=RECHERCHEV(MOD(ENT(J4*100)/100;1)*100;Tableau1;2;FAUX)
et en faisant ceci je n'obtiens toujours pas le bon résultat:
=RECHERCHEV(TRONQUE(MOD(ENT(J4*100)/100;1)*100);Tableau1;2;FAUX)
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
15 juil. 2015 à 22:19
15 juil. 2015 à 22:19
Re,
TRONQUE avec une RECHERCHEV c'est possible mais dans ta matrice comment sont les valeurs recherchées
tu devrais mettre à notre disposition un bout de ton fichier anonymisé à joindre à partir de ce lien
https://www.cjoint.com/
TRONQUE avec une RECHERCHEV c'est possible mais dans ta matrice comment sont les valeurs recherchées
tu devrais mettre à notre disposition un bout de ton fichier anonymisé à joindre à partir de ce lien
https://www.cjoint.com/
Voici le lien vers mon fichier: http://www.cjoint.com/c/EGpuVJ3e73Y
Attention la formule risque de vous faire saigner des yeux.
C'est préliminaire et il reste probablement quelques erreurs grammaticales d'accord mais bref, vous entrez un montant <1 milliard dans la case jaune et la formule convertit le nombre en lettre dans la case rouge.
Essayez d'entrer le nombre "100000.01" dans la case jaune et vous verrez un premier problème apparaître.
Merci pour votre aide!
Attention la formule risque de vous faire saigner des yeux.
C'est préliminaire et il reste probablement quelques erreurs grammaticales d'accord mais bref, vous entrez un montant <1 milliard dans la case jaune et la formule convertit le nombre en lettre dans la case rouge.
Essayez d'entrer le nombre "100000.01" dans la case jaune et vous verrez un premier problème apparaître.
Merci pour votre aide!
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
16 juil. 2015 à 02:00
16 juil. 2015 à 02:00
Bonjour,
Pour éviter les problèmes d'imprécision issus de la représentation binaire des nombres, tu peux remplacer les formules numériques par des formules travaillant sur des chaînes de caractères pour la partie décimale de ton nombre.
Ainsi, ton TRONQUE((J4-TRONQUE(J4))*100) deviendra --DROITE(TEXTE(D4;"#,00");NBCAR(TEXTE(D4;"#,00"))-TROUVE(",";TEXTE(D4;"#,00"))).
Quand tu travailles sur la partie entière de ton nombre, tu peux garder tes formules numériques.
au bout du compte tu auras :
cordialement
Pour éviter les problèmes d'imprécision issus de la représentation binaire des nombres, tu peux remplacer les formules numériques par des formules travaillant sur des chaînes de caractères pour la partie décimale de ton nombre.
Ainsi, ton TRONQUE((J4-TRONQUE(J4))*100) deviendra --DROITE(TEXTE(D4;"#,00");NBCAR(TEXTE(D4;"#,00"))-TROUVE(",";TEXTE(D4;"#,00"))).
Quand tu travailles sur la partie entière de ton nombre, tu peux garder tes formules numériques.
au bout du compte tu auras :
SI(D4>=1000000000;"ERREUR VALEUR TROP GRANDE";SI(TRONQUE(D4/1000000)=0;"";RECHERCHEV(TRONQUE(D4/1000000);Tableau1;2;FAUX)&SI(ET(D4/100000000-ENT(D4/100000000)=0;D4/1000000<>100);"S";"")&SI(TRONQUE(D4/1000000)<2;" MILLION";" MILLIONS"))&SI(TRONQUE(DROITE(TRONQUE(D4/1000);3))=0;"";" "&RECHERCHEV(TRONQUE(DROITE(TRONQUE(D4/1000);3));Tableau1;2;FAUX)&" MILLE")&SI(TRONQUE(DROITE(TRONQUE(D4);3))=0;"";" "&RECHERCHEV(TRONQUE(DROITE(TRONQUE(D4);3));Tableau1;2;FAUX))&SI((--DROITE(TEXTE(D4;"#,00");NBCAR(TEXTE(D4;"#,00"))-TROUVE(",";TEXTE(D4;"#,00")))*100)=0;"";" ET "&RECHERCHEV(--DROITE(TEXTE(D4;"#,00");NBCAR(TEXTE(D4;"#,00"))-TROUVE(",";TEXTE(D4;"#,00")));Tableau1;2;FAUX)))
cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 240
16 juil. 2015 à 07:14
16 juil. 2015 à 07:14
Bonjour,
avec 0.01 en D4, =DROITE(TEXTE(D4;"#,00")) me ramène 0 chez moi JvDo.
ARRONDI((MOD(D4;1))*100;0) a l'air de fonctionner :
eric
avec 0.01 en D4, =DROITE(TEXTE(D4;"#,00")) me ramène 0 chez moi JvDo.
ARRONDI((MOD(D4;1))*100;0) a l'air de fonctionner :
=SI(D4>=1000000000;"ERREUR VALEUR TROP GRANDE";SI(TRONQUE(D4/1000000)=0;"";RECHERCHEV(TRONQUE(D4/1000000);Tableau1;2;FAUX)&SI(ET(D4/100000000-ENT(D4/100000000)=0;D4/1000000<>100);"S";"")&SI(TRONQUE(D4/1000000)<2;" MILLION";" MILLIONS"))&SI(TRONQUE(DROITE(TRONQUE(D4/1000);3))=0;"";" "&RECHERCHEV(TRONQUE(DROITE(TRONQUE(D4/1000);3));Tableau1;2;FAUX)&" MILLE")&SI(TRONQUE(DROITE(TRONQUE(D4);3))=0;"";" "&RECHERCHEV(TRONQUE(DROITE(TRONQUE(D4);3));Tableau1;2;FAUX))&SI(ARRONDI((MOD(D4;1))*100;0)=0;"";" ET "&RECHERCHEV(ARRONDI((MOD(D4;1))*100;0);Tableau1;2;FAUX)))
eric
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
16 juil. 2015 à 10:39
16 juil. 2015 à 10:39
Bonjour eriiic,
Surprenant......
Si tu as le temps de mettre un fichier avec l'anomalie, je suis preneur.
Sinon, ARRONDI(MOD()) fonctionne très bien aussi.
Cordialement
Surprenant......
Si tu as le temps de mettre un fichier avec l'anomalie, je suis preneur.
Sinon, ARRONDI(MOD()) fonctionne très bien aussi.
Cordialement
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 240
16 juil. 2015 à 20:03
16 juil. 2015 à 20:03
Salut JvDo,
Laisse tomber, je n'avais pas suffisamment analysé ce matin pourquoi ta formule ne fonctionnait pas chez moi.
En fait mon séparateur décimal est le point. Ceci explique cela :-)
Les TROUVE(",";...) ne m'ont pas sautés au yeux.
Désolé pour la suée, ta formule est correcte même chez moi ;-)
eric
Laisse tomber, je n'avais pas suffisamment analysé ce matin pourquoi ta formule ne fonctionnait pas chez moi.
En fait mon séparateur décimal est le point. Ceci explique cela :-)
Les TROUVE(",";...) ne m'ont pas sautés au yeux.
Désolé pour la suée, ta formule est correcte même chez moi ;-)
eric
tontong
Messages postés
2567
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
20 novembre 2024
1 059
16 juil. 2015 à 11:22
16 juil. 2015 à 11:22
Bonjour à tous,
Une bidouille remédie à certaines erreurs:
=TRONQUE((D8+0,0001-TRONQUE(D8))*100)
Pour l' orthographe " quarante" en urgence, et pour le reste voir un très bon condensé sur cette page:
http://olivier.miakinen.free.fr/vrac/nombres.php#lettres_cent
Une bidouille remédie à certaines erreurs:
=TRONQUE((D8+0,0001-TRONQUE(D8))*100)
Pour l' orthographe " quarante" en urgence, et pour le reste voir un très bon condensé sur cette page:
http://olivier.miakinen.free.fr/vrac/nombres.php#lettres_cent