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입니다. 여기에서 유효 숫자 주제에 대해 자세히 알아볼 수 있습니다.

`link:/office-skill-ko/excelribbon-T012083

숫자에서 유효 숫자를 식별하는 데 일반적으로 허용되는 몇 가지 방법이 있지만 일련의 규칙을 코드화하려는 시도는 항상 논쟁의 여지가 있습니다. 이러한 규칙 집합 중 하나가 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 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]`.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (10976)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Finding_the_Number_of_Significant_Digits [유효 자릿수 찾기].