Suite à un message disparu d'un membre également disparu (guimontinet) avec le transfert du forum entre le 27 et 28 octobre, j'avais eu l'occasion d'aborder les arrondis dans les tableaux Writer. Comme ce sujet peut sans doute intéresser d'autres personnes et ne l'ayant pas vu traité ici, j'écris ce message.
Pour arrondir un nombre une cellule de tableau sous Writer :
- Arrondi au plus proche affiché :
- cliquer dans la cellule voulue
- Tableau > Format numérique > choisir le nombre de décimales à afficher
- c'est une méthode qui affiche un arrondi au plus proche mais le nombre en interne garde toutes ses décimales
- Arrondi au plus proche calculé :
- cliquer dans la cellule voulue
- touche F2 pour activer la barre de formule (qui ressemble à celle de Calc)
- entrer la formule suivante (le signe = étant déjà présent) :
nombre round Nb décimales - nombre peut aussi être une référence à une autre cellule, dans ce cas on met la référence entre chevrons simples <>, par exemple :
Code : Tout sélectionner
<A1> round 0
- c'est une méthode qui retourne un vrai arrondi, c'est-à-dire que le nombre retourné a réellement perdu ses décimales.
- Arrondi au nombre supérieur calculé :
- La fonction ARRONDI.SUP() qui existe sous Calc n'existe pas sous Writer.
On peut toutefois contourner cette limitation en créant une formule. Il faudrait dans ce cas que, lorsque les décimales sont inférieures à 0,5 , l'arrondi au plus proche soit augmenté de 1. Cette approche suppose que l'on puisse faire un test. Or il n'y a pas de fonction SI() disponible sous Writer. - On peut contourner cette absence en utilisant des opérateurs de comparaison :
- l → inférieur à (less)
- leq → inférieur ou égal à (less or equal)
- g → supérieur à (great)
- geq → supérieur ou égal à (great or equal)
- Ces opérateurs permettent de faire des tests → un nombre avant l'opérateur et un nombre après, le tout retournant 0 si le test est faux et 1 si le test est vrai.
- D'où la formule, en supposant qu'on arrondit au nombre supérieur le nombre présent dans la cellule A1 :
Code : Tout sélectionner
=((<A1>g (<A1>round 0))*((<A1>round 0)+1))+ ((<A1>leq (<A1>round 0))*(<A1>round 0))
- Explications :
- la formule est structurée ainsi :
testA * résultat1 + testÅ * résultat2 - testA et testÅ sont contradictoires : si testA est vrai (=1) alors testÅ est faux (=0) et réciproquement.
- testA → A1 > arrondi au plus proche de A1
cela veut dire que le nombre A1 est de la forme a (entier) + x avec x < 0,5 → dans ce cas on applique le résultat1 → l'arrondi au plus proche + 1 - testÅ → A1 <= arrondi au plus proche de A1
cela veut dire que le nombre A1 est de la forme a (entier) + x avec x >= 0,5 → dans ce cas on applique le résultat2 → l'arrondi au plus proche.
- la formule est structurée ainsi :
- La fonction ARRONDI.SUP() qui existe sous Calc n'existe pas sous Writer.
- Arrondi au nombre supérieur calculé par une méthode plus simple :
gerard24 m'a suggéré cette méthode, qui ne fait pas appel à des tests contradictoires :c'est lumineux, comme toujours avec Gérard , la partie (<A1>eq(<A1>round 0)) assurant que les nombres entiers ne soient pas augmentés de 1...Code : Tout sélectionner
=(<A1>+0,5) round 0 -(<A1>eq(<A1>round 0))
Je laisse toute de même la méthode précédente qui donne un exemple de simulation de la fonction SI() pour des résultats numériques...
Jean-Louis