유효 자릿수 찾기 (Microsoft Excel)
Brenda는 값의 유효 자릿수를 아는 데 관심이 있습니다. 그녀는 셀에 표시된 값의 유효 자릿수를 반환하는 데 사용할 수있는 Excel 함수 나 수식이 있는지 궁금합니다.
이 질문은보기만큼 간단하지 않습니다. 어떤 사람들에게는 소수점 또는 음수 부호를 뺀 값에서 자릿수를 찾습니다.
이것이 필요한 전부라면, 다음 공식과 같은 것이 잘 작동합니다.
=IF(A1<0,IF(A1=INT(A1),LEN(A1)-1,LEN(A1)-2),IF(INT(A1)=A1,LEN(A1),LEN(A1)-1))
그러나 이것이 그렇게 간단하지 않은 이유는 값의 유효 자릿수를 구성하는 것이 많은 것에 달려 있기 때문입니다. 요점은 값으로 얼마나 많은 유효 자릿수가 있는지 항상 알 수는 없다는 것입니다.
예를 들어 값 100은 1, 2 또는 3 개의 유효 숫자를 가질 수 있습니다. 값 1.00에 유효 자릿수가 3 개 있다고 가정하지만 표시된 값이 Excel에서 지정한 서식의 결과 인 경우에는 그렇지 않을 수 있습니다. 예를 들어 셀의 값은 1.0000437이 될 수 있으며 Excel 형식은 1.00입니다. 여기에서 유효 숫자 주제에 대해 자세히 알아볼 수 있습니다.
http://excel.tips.net/T001983
숫자에서 유효 숫자를 식별하는 데 일반적으로 허용되는 몇 가지 방법이 있지만 일련의 규칙을 코드화하려는 시도는 항상 논쟁의 여지가 있습니다. 이러한 규칙 집합 중 하나가 Wikipedia,이 기사의 “중요한 숫자 식별”섹션에 언급되어 있습니다.
http://en.wikipedia.org/wiki/Significant_figures
최소한 기본적인 규칙 세트 (예 : Wikipedia 기사의 규칙)를 염두에두고 값에 대해 가장 가능성있는 유효 자릿수를 제공하는 사용자 정의 함수를 개발할 수 있습니다.
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
워크 시트에서 다음을 사용하여이 함수를 호출합니다.
=SigFigs(A1, x)
_x_를 1 또는 2로 바꿀 수 있습니다. 1을 지정하면 함수는 최소 유효 자릿수를 반환합니다. 2를 지정하면 함수는 최대 유효 자릿수를 반환합니다. 대부분의 경우 두 개의 가능한 반환 값은 후행 소수점이없고 후행 0이있는 정수인 값을 제외하고는 동일합니다. 즉,이 함수를 사용하여 숫자 1234000을 평가하면 최소값 (_x_은 1)
4를 반환하고 최대 값 (_x_은 2)은 7을 반환합니다.
이 함수는 숫자가 워크 시트에 표시되는 방식을 고려합니다. 즉, 숫자 형식이 중요하다는 것을 의미합니다. 음수 기호, 괄호 및 쉼표와 같은 서식 지정 문자를 제거합니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (10975)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.
Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전은 여기에서 찾을 수 있습니다.
link : / excelribbon-Finding_the_Number_of_Significant_Digits [유효 자릿수 찾기]
.