arrondi.au.multiple arrondit de manière aléatoire

Anonyme
2016-01-12T16:11:06+00:00

Bonjour,

J'ai découvert que arrondi.au.multiple() arrondit de manière aléatoire selon l'humeur et j'aimerais savoir si quelqu'un sait pourquoi???

En K j'ai utilisé la formule

=ARRONDI.AU.MULTIPLE(SOMMEPROD($D$3:$H$3;D5:H5)/SOMME($D$3:$H$3);0.1)

mais on a découvert qu'elle ne marche pas tout le temps. En effet, j'ai comparé à des calculs basiques (voir colonnes M, N, O) et on voit bien, en rouge, que ça arrondit faux. Ce qui est par ailleurs étrange, c'est que certains arrondis se font aléatoirement de manière correcte (cf. cellules vertes).

Colonne L :  (juste)

=ARRONDI(SOMMEPROD($D$3:$H$3;D5:H5)/SOMME($D$3:$H$3);1) 

Colonne M : (juste)

=ARRONDI((D5+E5+F5+F5+G5+G5+H5*4)/10;1)

Colonne N : (juste)

=(D5+E5+F5+F5+G5+G5+H5*4)/10

D'après ces minis tests rapides, on peut supposer que le problème vient de la formule arrondi.au.multiple() et non de sommeprod(). Je précise que j'ai vérifié les formats de cellules et les contenus de chaque cellule.

ça m'énerve de ne pas comprendre pourquoi cela ne marche pas. Est-ce que quelqu'un aurait la réponse?

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

43 réponses

  1. DanielCo 107.7K Points de réputation
    2016-01-13T15:36:00+00:00

    Si vous regardez la méthode que je vous ai montrée, vous verrez qu'il n'y a aucun aléa...

    Si en plus vous consultez l'aide sur la fonction dans l'assistant, vous comprendrez pourquoi les ingénieurs d'Excel n'ont rien à se reprocher.

    Meilleurs voeux

    Bonjour,

    Peux-tu expliquer pourquoi :

    1. =ARRONDI.AU.MULTIPLE(4.05;0.1) donne 4 ?

    et =ARRONDI.AU.MULTIPLE(14.05;0.1) donne 14,1 ?

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2016-01-13T15:28:07+00:00

    La réponse est que la fonction ARRONDI.AU.MULTIPLE est boguée. J'en ai eu la confirmation sur un autre forum (anglophone) :

    So I still think mround is hinky with decimal arith.

    Note : (MROUND = ARRONDI.AU.MULTIPLE)

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2016-01-13T15:23:01+00:00

    Si vous regardez la méthode que je vous ai montrée, vous verrez qu'il n'y a aucun aléa...

    Si en plus vous consultez l'aide sur la fonction dans l'assistant, vous comprendrez pourquoi les ingénieurs d'Excel n'ont rien à se reprocher.

    Meilleurs voeux

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2016-01-13T15:02:21+00:00

    j'ai suivi votre conseil et ai testé le modulo 0.1 avec Excel et effectivement on peut penser que ça donne 0.05 en format standard... mais visiblement si on modifie le format de cellules en augmentant les décimales, on voit le subterfuge... C'est quand même tordu je trouve. on remarque également si on fait =MOD(4.05;0.1)-0.05 : on obtient -5.27356*10^(-16).

    De même, le même test montre que arrondi.au.multiple(4.15;0.1) donne juste car le modulo 0.1 vaut 0.0500000000000001, ce qui explique pourquoi l'arrondi de 4.15 donne 4.2.

    Dès lors on peut s’interroger sur la stabilité de la formule arrondi.au.multiple(), notamment pour des cas comme l'arrondi aux 0.5 utilisé pour les notes ou l'arrondi aux 0.05 utilisé pour les 5 centimes... 

    Je vais devoir donc abandonner cette formule défaillante et reprendre l'ancienne méthode, à savoir : 

    =ARRONDI(2*nombre;0)/2 pour les 0.5

    =ARRONDI(20*nombre;0)/20 pour les 0.05

    Dommage qu'on ne puisse pas faire part de ce genre d'erreur aux concepteurs... :(

    En tous cas merci de m'avoir aidée à trouver la raison de ce problème car, mathématicienne et informaticienne de formation, je déteste être confrontée à ce genre de situation où je n'arrive pas à comprendre d'où provient une erreur.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2016-01-13T14:49:52+00:00

    oui ça je pense bien que ce n'est pas la même chose entre un arrondi à 0.5 et un au dixième. 

    mon problème c'est que je ne vois pas pourquoi 

    **=**ARRONDI.AU.MULTIPLE(SOMMEPROD($D$3:$H$3;D5:H5)/SOMME($D$3:$H$3);0.1)

    et

    =ARRONDI(SOMMEPROD($D$3:$H$3;D5:H5)/SOMME($D$3:$H$3);1) 

    ne donnent pas la même réponse.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire