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: