Trovare il numero di cifre significative (Microsoft Excel)
Brenda è interessata a conoscere il numero di cifre significative in un valore. Si chiede se esiste una funzione o una formula di Excel che può utilizzare che restituirebbe il numero di cifre significative nel valore mostrato in una cella.
Questa domanda non è così semplice come sembra. Per alcune persone, trovare il numero di cifre in un valore, meno eventuali punti decimali o segni negativi.
Se questo è tutto ciò di cui hai bisogno, allora qualcosa di simile a questa formula funzionerà perfettamente:
=IF(A1<0,IF(A1=INT(A1),LEN(A1)-1,LEN(A1)-2),IF(INT(A1)=A1,LEN(A1),LEN(A1)-1))
La ragione per cui questo non è così semplice, tuttavia, è perché ciò che costituisce il numero di cifre significative in un valore dipende da molte cose. La linea di fondo è che non puoi sempre dire guardando un valore quante cifre significative ha.
Ad esempio, il valore 100 potrebbe avere 1, 2 o 3 cifre significative. Si presume che il valore 1.00 abbia 3 cifre significative, ma potrebbe non essere il caso se il valore visualizzato è il risultato della formattazione imposta da Excel, ad esempio il valore nella cella potrebbe essere 1.0000437, che Excel formatta come 1.00. Puoi scoprire di più sull’argomento delle cifre significative qui:
http://excel.tips.net/T001983
Esistono alcuni modi generalmente accettati per identificare le cifre significative in un numero, ma qualsiasi tentativo di codificare un insieme di regole è sempre aperto al dibattito. Uno di questi set di regole è stato annotato su Wikipedia, nella sezione “Identifying Significant Digits” di questo articolo:
http://en.wikipedia.org/wiki/Significant_figures
Con almeno una serie di regole rudimentali in mente (come quella nell’articolo di Wikipedia) è possibile sviluppare una funzione definita dall’utente che ti darà il numero più probabile di cifre significative per un valore.
Function SigFigs(rng As Range, Optional iType As Integer = 1) 'iType = 1 is Min 'iType = 2 is Max Dim rCell As Range Dim sText As String Dim sText2 As String Dim iMax As Integer Dim iMin As Integer Dim iDec As Integer Dim i As Integer Application.Volatile Set rCell = rng.Cells(1) 'if not a number then error If Not IsNumeric(rCell) Or IsDate(rCell) Then SigFigs = CVErr(xlErrNum) Exit Function End If sText2 = Trim(rCell.Text) sText = "" 'find position of decimal point (it matters) iDec = InStr(sText2, ".") 'strip out any non-numbers (including decimal point) For i = 1 To Len(sText2) If Mid(sText2, i, 1) >= "0" And _ Mid(sText2, i, 1) <= "9" Then _ sText = sText & Mid(sText2, i, 1) Next 'remove any leading zeroes (they don't matter) While Left(sText, 1) = "0" sText = Mid(sText, 2) Wend iMax = Len(sText) 'strip trailing zeroes (they don't matter if no decimal point) sText2 = sText If iDec = 0 Then While Right(sText2, 1) = "0" sText2 = Left(sText2, Len(sText2) - 1) Wend End If iMin = Len(sText2) 'return Min or Max Select Case iType Case 1 SigFigs = iMin Case 2 SigFigs = iMax Case Else SigFigs = CVErr(xlErrNum) End Select End Function
Chiami questa funzione usando quanto segue nel tuo foglio di lavoro:
=SigFigs(A1, x)
È possibile sostituire x con 1 o 2. Se si specifica 1, la funzione restituisce il numero minimo di cifre significative. Se si specifica 2, la funzione restituisce il numero massimo di cifre significative. Nella maggior parte dei casi i due possibili valori restituiti saranno gli stessi, tranne con valori che sono numeri interi, senza punto decimale finale, che hanno zeri finali. In altre parole, se usi la funzione per valutare il numero 1234000, il minimo (x è 1)
restituisce 4 e il massimo (x è 2) restituisce 7.
La funzione prende in considerazione il modo in cui il numero appare nel foglio di lavoro, il che significa che è importante come il numero è formattato. Elimina tutti i caratteri di formattazione, come segni negativi, parentesi e virgole.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10975) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: