Una fattura con dieci righe, ciascuna con IVA calcolata e mostrata con due decimali. Sommi a mano i valori visualizzati e ottieni 1.234,56; il foglio mostra 1.234,57. Nessuno dei due ha sbagliato: il foglio somma i valori reali, con tutti i decimali, mentre tu hai sommato quelli arrotondati a video. È uno dei problemi più comuni nei fogli che trattano importi, e si risolve capendo la differenza tra mostrare un numero arrotondato e arrotondarlo davvero.
Il formato numero non cambia il valore
Quando imposti una cella con due decimali, il programma mostra il valore arrotondato, ma conserva e usa nei calcoli il valore completo. Se una cella contiene 10,456 e la mostri come 10,46, la formula =A1*100 restituisce 1045,6, non 1046.
Questo comportamento è corretto e nella maggior parte dei calcoli è ciò che vuoi: arrotondare a ogni passaggio introdurrebbe errori cumulativi. Diventa un problema quando i valori intermedi devono corrispondere a importi reali, come le righe di una fattura, le rate di un piano o le quote di una ripartizione.
La funzione ARROTONDA e le sue varianti
Per modificare davvero il valore si usa una funzione:
| Funzione | Comportamento | Esempio con 2,345 |
|---|---|---|
ARROTONDA(x; 2) |
al più vicino, 5 per eccesso | 2,35 |
ARROTONDA.PER.ECC(x; 2) |
sempre lontano dallo zero | 2,35 |
ARROTONDA.PER.DIF(x; 2) |
sempre verso lo zero | 2,34 |
ARROTONDA.MULTIPLO(x; 0,05) |
al multiplo più vicino | 2,35 |
TRONCA(x; 2) |
elimina i decimali in eccesso | 2,34 |
Alcuni dettagli utili:
- il secondo argomento può essere negativo:
=ARROTONDA(1234; -2)restituisce 1200, comodo per stime e preventivi; - ARROTONDA.MULTIPLO serve per prezzi «a 5 centesimi» o tempi arrotondati al quarto d'ora:
=ARROTONDA.MULTIPLO(A2; 15/1440)arrotonda un orario ai 15 minuti più vicini; - INT e TRONCA coincidono per i numeri positivi ma non per i negativi:
INT(-2,5)restituisce -3,TRONCA(-2,5)restituisce -2.
Dove arrotondare
La domanda pratica non è «se» arrotondare, ma «in quale punto del calcolo». Torniamo alla fattura:
- Arrotondi ogni riga e poi sommi: il totale coincide con la somma dei valori stampati, ma può differire di qualche centesimo dal calcolo sul totale.
- Sommi i valori pieni e arrotondi solo il totale: il totale è più preciso, ma non coincide con la somma delle righe visualizzate.
Nessuna delle due è sbagliata in assoluto; dipende dalla regola che il documento deve rispettare. Per le fatture la regola di calcolo dell'imposta va verificata con chi tiene la contabilità; il foglio deve riprodurre quella regola in modo esplicito, con ARROTONDA nel punto giusto.
Ripartizioni che non tornano
Dividere 100 euro in tre quote uguali produce 33,33 + 33,33 + 33,33 = 99,99. Arrotondare ciascuna quota non risolve: manca sempre un centesimo. La soluzione standard è calcolare tutte le quote tranne l'ultima e assegnare all'ultima la differenza:
Quota 1 e 2: =ARROTONDA(Totale/3; 2)
Quota 3: =Totale-SOMMA(quote precedenti)
Così la somma delle quote è sempre uguale al totale. Lo stesso schema vale per i piani di ammortamento: l'ultima rata assorbe le differenze di arrotondamento.
L'opzione «precisione come visualizzata»
Excel offre un'impostazione, nelle opzioni avanzate, chiamata «Imposta precisione come visualizzata». Attivandola, il programma sostituisce in modo permanente i valori con quelli mostrati dal formato. Sembra una soluzione comoda, ma è rischiosa: agisce su tutta la cartella, modifica i dati in modo irreversibile e rende il comportamento del file dipendente dal formato delle celle. È meglio usare ARROTONDA dove serve, in modo esplicito e visibile.
La virgola mobile
C'è un secondo motivo, più sottile, per cui i numeri non tornano. I fogli di calcolo memorizzano i numeri in formato binario a virgola mobile, con circa 15 cifre significative di precisione. Molti decimali che per noi sono esatti, come 0,1, in binario non hanno una rappresentazione finita, esattamente come 1/3 non ce l'ha in decimale.
Il risultato è che alcuni calcoli producono differenze minime. Per esempio =0,1+0,2-0,3 può restituire un valore piccolissimo diverso da zero invece di 0, visibile solo aumentando molto i decimali. Il programma maschera molti di questi casi, ma non tutti.
Le conseguenze pratiche:
- un confronto come
=A2=B2può dare FALSO tra due valori che sembrano identici; - una formattazione condizionale «uguale a zero» può non scattare;
- una ricerca esatta su valori calcolati può non trovare corrispondenza.
La soluzione è arrotondare prima di confrontare: =ARROTONDA(A2; 2)=ARROTONDA(B2; 2), oppure verificare che la differenza sia sotto una soglia: =ASS(A2-B2)<0,005.
Per lo stesso motivo, codici numerici lunghi come i numeri di carta o certi codici di tracciamento, che superano le 15 cifre, vanno sempre memorizzati come testo: altrimenti le cifre finali vengono sostituite da zeri.
Nel mio lavoro, in qualsiasi foglio che produce importi da riportare altrove, metto un controllo finale che confronta il totale con la somma delle parti arrotondate: se la differenza non è zero, una cella diventa rossa.
In sintesi
- Il formato numero mostra un valore arrotondato ma i calcoli usano quello completo.
- ARROTONDA e le sue varianti modificano davvero il valore; scegli con cura il punto in cui usarle.
- Nelle ripartizioni assegna all'ultima quota la differenza, così il totale torna sempre.
- Evita l'opzione «precisione come visualizzata»: è irreversibile.
- Per la virgola mobile, arrotonda prima di confrontare e salva come testo i codici oltre 15 cifre.