Il existe deux méthodes d'arrondi : la méthode mathématique et la méthode des banquiers. Cette dernière est plus précise que la méthode mathématique standard et surtout Excel utilise les 2 méthodes. Voyons cela dans cet article.
Comment arrondi-t-on avec 0,5 ?
Tout le point de départ c'est de savoir comment on arrondi la valeur 0,5. Doit-on arrondir à 0 ou doit-on arrondir à 1 ? En mathématique "traditionnelle" on va dire, la réponse est toujours la même, on arrondit à la valeur supérieure
- 0,5 sera arrondi à 1
- 1,5 arrondi à 2
- 2,5 arrondi à 3
- ...
Mais une autre méthode, appelée l'arrondi des banquiers (banker's rounding), apporte une approche quelque peu différente.
Je le dis honnêtement, jamais je n'avais entendu parler de cette méthode lors de mes études ni lors de mes missions de consultant. C'est après une conversation avec d'autres MVP d'Excel et des développeurs de Microsoft que j'ai appris l'existence de cette méthode. Et comme vous allez le voir à la fin de cet article, les 2 méthodes retournent des résultats bien différents 🤔😯
C'est quoi l'arrondi des banquiers ?
Le principe c'est d'arrondir en fonction des nombres pairs et impairs.
- 0,5 sera arrondi à 0.
- 1,5 arrondi à 2.
- 2,5 arrondi à 2
- 3,5 arrondi à 4
- ....
Dans cet exemple, vous voyez la différence entre l'utilisation de la fonction ARRONDI, et la méthode d'arrondi des banquiers.
La fonction ARRONDI d'Excel se base sur la règle mathématique de toujours arrondir vers le nombre supérieur. Pour obtenir l'arrondi des banquiers, on peut utiliser la fonction suivante :
=SI(MOD(B6;1)=0,5;ARRONDI.AU.MULTIPLE(B6;2);ARRONDI(C6;0))
Pourquoi c'est plus précis ?
La méthode d'arrondi des banquiers est plus précise et très facile à comprendre pourquoi.
L'arrondi de 0,1 c'est 0 et l'arrondi de 0,9 c'est 1. Autrement dit, les décimales 0,1 compensent celles de 0,9. Et de même pour :
- 0,2 compensé par 0,8.
- 0,3 compensé par 0,7.
- 0,4 compensé par 0,6.
Mais avec la méthode mathématique traditionnelle, avec 0,5, on ne fait qu'ajouter +0,5 pour atteindre la valeur supérieure (jamais on ne retranche). Avec la méthode des banquiers, l'idée c'est d'introduire une règle qui va soit ajouter, soit retrancher 0,5. Et cette règle c'est de se baser sur les nombres pairs ou impairs.
Différence entre les 2 méthodes
Le meilleur moyen de vérifier que la deuxième méthode est plus précise est la suivante.
- Créer une très grande liste de nombres.
- Faire la somme de cette liste.
=SOMME(B6:B1000006)
- Appliquer la formule ARRONDI dans une autre colonne.
- Puis la méthode d'arrondi des banquiers dans une autre colonne.
- Faites la somme de ces 2 autres colonnes.
- Faire la différence entre la somme des nombres non arrondis avec les colonnes ayant utilisé l'une ou l'autre méthode.
Le résultat montre un écart extrêmement faible avec la méthode d'arrondi des banquiers.
Le VBA utilise quelle méthode ?
En VBA, c'est la méthode des banquiers qui est utilisée pour arrondir les nombres. Pour s'en rendre compte, il suffit de reprendre notre liste de 100000 valeurs à arrondir et de lancer cette boucle d'arrondi.
Sub Test_Arrondi()
Dim i As Long
For i = 6 To 1000006
Cells(i, 5) = Round(Cells(i, 2), 0)
Next
End Sub
Le résultat est similaire à la colonne de l'arrondi des banquiers.
NOTE : Précision apportée par mon collègue MVP Rick Rothstein, en VBA, toutes les fonctions d'arrondi suivent la méthode des banquiers, sauf la fonction Format.
Round(5/2, 0) => 2
Et
Format(5/2, "0") => 3
Méthode utilisée avec Power Query
Et également avec Power Query, c'est la méthode de l'arrondi des banquiers qui est utilisée avec l'instruction Ajout Colonne > Arrondi > Arrondi ...
Vous trouverez des informations complémentaires sur l'arrondi aux décimales voulues sur le site de Microsoft.
Mad Daemon
20/06/2023 @ 17:55
L'arrondi "normal" introduit une erreur systématique de 0.5 d'où le résultat à la section "Différence entre les 2 méthodes" : 1 000 000 valeurs / 10 pas * 0.5 de biais ~ 50 000 d'erreur.
L'arrondi "banquier" en altérant 1 quantification permet au biais d'être nul. Cet arrondi améliore l'exactitude.
Rick Rothstein
07/03/2023 @ 10:33
A note for VBA users... Bankers' Rounding is used for all explicit and implicit rounding except for one function... the Format function which uses traditional rounding (5's always round up) like Excel does. So, while Round(5/2,0) returns the Bankers' Rounding value of 2, Format(5/2,"0") returns the traditional rounding value of 3.
Frédéric LE GUEN
07/03/2023 @ 10:53
Thanks Rick for this insight (Merci Rick pour la précision).
Arnaud joseph
13/04/2021 @ 22:37
Pas mal du tout
Je ne connaissais pas, merci pour l’info.
Kasel
25/03/2021 @ 16:13
C'est bien mais j'aimerais avoir les formules d'excel
Frédéric LE GUEN
25/03/2021 @ 16:19
La formule est donnée dans l'article. Juste avant le paragraphe "Différence entre les 2 dméthodes"