Recherche du nombre de chiffres significatifs (Microsoft Excel)
Brenda souhaite connaître le nombre de chiffres significatifs dans une valeur. Elle se demande s’il existe une fonction ou une formule Excel qu’elle peut utiliser qui renverrait le nombre de chiffres significatifs dans la valeur affichée dans une cellule.
Cette question n’est pas aussi simple qu’il y paraît. Pour certaines personnes, trouver le nombre de chiffres dans une valeur, moins les points décimaux ou les signes négatifs.
Si c’est tout ce dont vous avez besoin, alors quelque chose comme cette formule fonctionnera très bien:
=IF(A1<0,IF(A1=INT(A1),LEN(A1)-1,LEN(A1)-2),IF(INT(A1)=A1,LEN(A1),LEN(A1)-1))
La raison pour laquelle ce n’est pas si simple, cependant, est que ce qui constitue le nombre de chiffres significatifs dans une valeur dépend de beaucoup de choses. En fin de compte, vous ne pouvez pas toujours dire en regardant une valeur combien de chiffres significatifs elle a.
Par exemple, la valeur 100 peut avoir 1, 2 ou 3 chiffres significatifs. Il est présumé que la valeur 1,00 comporte 3 chiffres significatifs, mais cela peut ne pas être le cas si la valeur affichée est le résultat d’une mise en forme imposée par Excel – par exemple, la valeur de la cellule pourrait être 1,0000437, que Excel formate comme 1,00. Vous pouvez en savoir plus sur le sujet des chiffres significatifs ici:
http://excel.tips.net/T001983
Il existe des méthodes généralement acceptées pour identifier les chiffres significatifs d’un nombre, mais toute tentative de codification d’un ensemble de règles est toujours sujette à débat. Un tel ensemble de règles a été noté sur Wikipedia, dans la section « Identifier les chiffres significatifs » de cet article:
http://en.wikipedia.org/wiki/Significant_figures
Avec au moins un ensemble de règles rudimentaires à l’esprit (comme celui de l’article de Wikipédia), il est possible de développer une fonction définie par l’utilisateur qui vous donnera le nombre le plus probable de chiffres significatifs pour une valeur.
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
Vous appelez cette fonction en utilisant ce qui suit dans votre feuille de calcul:
=SigFigs(A1, x)
Vous pouvez remplacer x par 1 ou 2. Si vous spécifiez 1, la fonction renvoie le nombre minimum de chiffres significatifs. Si vous spécifiez 2, la fonction renvoie le nombre maximal de chiffres significatifs. Dans la plupart des cas, les deux valeurs de retour possibles seront identiques, sauf avec des valeurs qui sont des nombres entiers, sans point décimal de fin, qui ont des zéros de fin. En d’autres termes, si vous utilisez la fonction pour évaluer le nombre 1234000, alors le minimum (x est 1)
renvoie 4 et le maximum (x est 2) renvoie 7.
La fonction prend en considération la façon dont le nombre apparaît dans la feuille de calcul, ce qui signifie que la façon dont le nombre est formaté est importante. Il supprime tous les caractères de mise en forme, tels que les signes négatifs, les parenthèses et les virgules.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10975) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.
Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
lien: / excelribbon-Finding_the_Number_of_Significant_Digits [Recherche du nombre de chiffres significatifs]
.