Mantenere Precisione di cifre significative

Ken ha chiesto se è possibile mantenere il numero di cifre significative sui valori immessi in Excel. Per esempio, "12.345600" e "1.230".

La risposta breve, Ken, è che non si può. Perché? Perché Excel trasforma sempre tutto a 15 cifre significative internamente. Questo, se si immette 12 o 12.0 o 12,00000, Excel considera sempre questi lo stesso di 12,0000 miliardi, anche se questo potrebbe non essere tecnicamente corretto nel vero senso matematico. Inoltre, dal momento che Excel converte tutto a 15 cifre significative, che tronca eventuali zeri finali in tutti i numeri visualizzati utilizzando il formato numero Generale.

(Dovrebbe essere ovvio dalla spiegazione di cui sopra che i termini "cifre significative", "precisione" e "numero di decimali" significano cose completamente diverse. Ad esempio, il numero 12.000 ha tre cifre decimali, ma ha cinque cifre significative. (Sono sicuro che i teorici matematici del pubblico saranno tutti troppo felici di correggermi se sbaglio).

È possibile utilizzare un formato numerico personalizzato per singole celle, che visualizzare le informazioni utilizzando il numero di cifre significative, ma ciò non pregiudica il funzionamento di Excel internamente. Ad esempio, si potrebbe formattare una cella per visualizzare 12 o 12,0 o 12,00 mila, ma questo non cambia il fatto che Excel considera ancora tutti i numeri per essere 12,0000 miliardi.

Un modo per aggirare questo problema è quello di inserire i numeri come testo, mettendo un apostrofo davanti a loro. In altre parole, invece di immettere 12,0 vuoi entrare '12 .0. Excel poi analizza la voce come testo (a causa del apostrofo) e visualizza 12,0 nella cella. L'unico svantaggio di questo approccio è che non è possibile fare riferimento direttamente alla cella in tutte le funzioni matematiche; alcuni di loro si restituirà un errore perché si è compreso cosa Excel considera come testo nella funzione. Il modo più semplice per gestire questo è quello di assicurarsi di includere la funzione = VALUE come parte della formula generale. Ad esempio, se si inserisce un numero come testo in cella B7, e quindi necessario fare riferimento in una formula, si potrebbe fare in questo modo:

= VALUE (B7) * 100

Questa grande opera per formule con riferimenti a cella singola. Non funziona bene per i riferimenti di intervallo, però. Se avete bisogno di fare una somma o una media su un intervallo di valori iscritti come testo, Excel soffocare ogni volta, restituendo un errore in base a ciò la funzione sta cercando di fare.

Questo ci porta alla seconda possibile soluzione: mantenere sia le cifre significative o il numero di cifre decimali separato dal valore reale. Per molti scopi tecniche matematiche, questo è il modo migliore per gestire la situazione. Ad esempio, nella colonna C è possibile immettere i numeri, come numeri. Excel, naturalmente, li converte internamente a 15 cifre significative. Nella colonna D è possibile inserire vari numeri che rappresentano il numero di cifre decimali che si desidera applicare i valori nella colonna C. È quindi possibile utilizzare i valori nella colonna D per aiutare a formule che fanno riferimento ai valori della colonna C.

Una possibile soluzione finale è quello di formattare semplicemente ogni singola cella in modo che mostra solo il numero di cifre decimali che si desidera visualizzare. Con l'avvertenza notato sopra (che tale formattazione non influenza la rappresentazione interna dei numeri di Excel), questo potrebbe essere la soluzione migliore. Naturalmente, regolando autonomamente la formattazione visualizzazione di un paio di cellule è facile, ma in questo modo a un centinaio di cinquecento cellule è una storia diversa. Questo è dove un macro può tornare utile. Si consideri la seguente macro:

SigPlaces Sub ()
Dim c come gamma
Dim strcell As String, NumFormat come stringa, DecSep As String
Dim DecPtLoc As Integer, stringLen As Integer
NumDecPlaces Dim As Long

DecSep = "."

Per ogni c In Selection.Cells
strcell = c.Value
Se IsNumeric (strcell) Poi
NumFormat = "# 0"
DecPtLoc = InStr (strcell, DecSep)
Se DecPtLoc> 0 Then
NumFormat = NumFormat & DecSep
stringLen = Len (strcell)
numDecPlaces = stringLen - DecPtLoc
NumFormat = NumFormat & String (numDecPlaces, "0")
End If
c.Value = Val (strcell)
c.NumberFormat = NumFormat
End If
Successivo c
End Sub

Se inserite i numeri come testo (con l'apostrofo, di cui sopra), è possibile selezionare le celle ed eseguire questa macro. Le voci di testo vengono convertite in numeri, e la formattazione applicata a tali cellule vengono modificati in modo da visualizzare lo stesso numero di decimali immesso nella voce di testo.

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2045) si applica a Microsoft Excel 97, 2000, 2002, e 2003.