Ermitteln der Anzahl der signifikanten Stellen (Microsoft Excel)
Brenda ist daran interessiert, die Anzahl der signifikanten Stellen in einem Wert zu kennen. Sie fragt sich, ob sie eine Excel-Funktion oder -Formel verwenden kann, die die Anzahl der signifikanten Stellen in dem in einer Zelle angezeigten Wert zurückgibt.
Diese Frage ist nicht so einfach, wie es scheint. Bei manchen Menschen wird die Anzahl der Stellen in einem Wert ermittelt, abzüglich Dezimalstellen oder negativer Vorzeichen.
Wenn das alles ist, was Sie brauchen, funktioniert so etwas wie diese Formel einwandfrei:
=IF(A1<0,IF(A1=INT(A1),LEN(A1)-1,LEN(A1)-2),IF(INT(A1)=A1,LEN(A1),LEN(A1)-1))
Der Grund, warum dies nicht so einfach ist, liegt darin, dass die Anzahl der signifikanten Stellen in einem Wert von vielen Dingen abhängt. Die Quintessenz ist, dass Sie nicht immer anhand eines Werts erkennen können, wie viele signifikante Stellen er hat.
Zum Beispiel könnte der Wert 100 1, 2 oder 3 signifikante Stellen haben. Es wird davon ausgegangen, dass der Wert 1,00 drei signifikante Stellen hat. Dies ist jedoch möglicherweise nicht der Fall, wenn der angezeigte Wert das Ergebnis einer von Excel auferlegten Formatierung ist. Beispielsweise könnte der Wert in der Zelle 1,0000437 sein, was Excel als 1,00 formatiert. Weitere Informationen zum Thema der signifikanten Ziffern finden Sie hier:
http://excel.tips.net/T001983
Es gibt einige allgemein anerkannte Möglichkeiten, signifikante Ziffern in einer Zahl zu identifizieren, aber jeder Versuch, ein Regelwerk zu kodifizieren, ist immer offen für Diskussionen. Ein solches Regelwerk wurde bei Wikipedia im Abschnitt „Identifizieren signifikanter Ziffern“ dieses Artikels erwähnt:
http://en.wikipedia.org/wiki/Significant_figures
Mit zumindest einem rudimentären Regelwerk (wie dem im Wikipedia-Artikel) ist es möglich, eine benutzerdefinierte Funktion zu entwickeln, die Ihnen die wahrscheinlichste Anzahl signifikanter Stellen für einen Wert gibt.
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
Sie rufen diese Funktion auf, indem Sie Folgendes in Ihrem Arbeitsblatt verwenden:
=SigFigs(A1, x)
Sie können x durch 1 oder 2 ersetzen. Wenn Sie 1 angeben, gibt die Funktion die Mindestanzahl signifikanter Ziffern zurück. Wenn Sie 2 angeben, gibt die Funktion die maximale Anzahl signifikanter Stellen zurück. In den meisten Fällen sind die beiden möglichen Rückgabewerte gleich, außer bei Werten, bei denen es sich um ganze Zahlen ohne nachgestellten Dezimalpunkt handelt, die nachgestellte Nullen aufweisen. Mit anderen Worten, wenn Sie die Funktion zum Auswerten der Zahl 1234000 verwenden, ist das Minimum (x 1)
gibt 4 zurück und das Maximum (x ist 2) gibt 7 zurück.
Die Funktion berücksichtigt, wie die Nummer im Arbeitsblatt angezeigt wird, was bedeutet, dass es darauf ankommt, wie die Nummer formatiert wird. Formatierungszeichen wie negative Vorzeichen, Klammern und Kommas werden entfernt.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (10975) gilt für Microsoft Excel 97, 2000, 2002 und 2003.
Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: