엔지니어링 환경에서 “정규화”해야하는 것은 드문 일이 아닙니다

어떤 방식 으로든 숫자. 예를 들어 7340은 7.34로, 73400은 73.4로 표현되도록 10 ^ 3의 배수로 정규화 된 숫자 값을 표시해야 할 수 있습니다.

Excel에서 사용자 지정 숫자 형식을 사용하여 숫자 표시를 10 ^ 3의 배수로 정규화하는 과학적 표기법으로 정보를 표현할 수 있습니다. 이를 수행하려면 다음 단계를 따르십시오.

  1. 서식을 지정할 셀을 선택하십시오.

  2. 서식 메뉴에서 셀 옵션을 선택하십시오. Excel에 셀 서식 대화 상자가 표시됩니다.

  3. 숫자 탭이 선택되어 있는지 확인하십시오.

  4. 형식 범주 목록에서 사용자 지정을 선택합니다. (그림 1 참조)

  5. 유형 상자에 형식으로 ## 0.0E + 0을 입력합니다. (소수점 오른쪽에 하나의 숫자 만 제공됩니다. 더 많이 원하면 소수점 이하 0의 수를 늘립니다.)

  6. 확인을 클릭하십시오.

이제 셀에 7340과 같은 숫자를 입력하면 Excel에서 7.3E + 3으로 표시됩니다. 셀 형식이 입력 된 방식 때문에 E 뒤의 부분은 항상 3의 배수가됩니다.

이것은 훌륭하고 좋지만 셀에 7.3 만 있고 킬로그램과 같이 인접한 셀에 단위가있는 메트릭 접두사를 원한다면 어떻게 될까요? 이것은 조금 더 복잡하지만 공식을 사용하여 수행 할 수 있습니다. 예를 들어 A2 셀에 원래 번호가 있고 B2 셀에 정규화 된 숫자를 원하고 C2 셀에 metic 접두사와 단위 이름을 원한다고 가정 해 보겠습니다. B2 셀에 다음 수식을 입력하기 만하면됩니다.

=IF(OR(A2>=1,A2<=-1),SIGN(A2)(ABS(A2)/(10^(3INT(LOG(ABS(A2))/3)))), IF(A2=0,0,SIGN(A2)(ABS(A2)10^(-3*INT(LOG(ABS(A2))/3)))))

작업중인 단위가 foo라는 가상 단위라고 가정하면 셀 C2에서 다음과 같이 다른 공식을 사용합니다.

=IF(OR(A2>=1, A2<=-1),CHOOSE(INT(LOG(ABS(A2))/3)+1, "Foos", "Kilofoos", "Megafoos", "Gigafoos", "Terafoos", "Petafoos", "Exafoos"), IF(A2=0,"",CHOOSE(INT(-LOG(ABS(A2))/3)+1, "Millifoos", "Microfoos", "Nanofoos", "Picofoos", "Femtofoos", "Attofoos")))

이 공식은 약간 길어 보일 수 있습니다. 그러나 약 -9.99999E-18에서 9.99999E + 20 사이의 모든 숫자에 대해 작동합니다.

예를 들어 A2 셀에 숫자 .000125를 입력하면 B2 셀에는 125가 포함되고 C2 셀에는 Millifoos가 포함됩니다.

통합 문서에서 이와 같은 더 긴 수식을 사용하지 않으려면 몇 가지 VBA 함수를 개발하여 트릭을 수행 할 수 있습니다.

다음 함수 MySciNum은 정규화 된 숫자를 반환합니다. 따라서 셀 B2에서 = MySciNum (A2)를 사용하여 위에서 언급 한 것과 동일한 결과를 얻습니다.

Function MySciNum(BaseNum As Double) As Double     Select Case BaseNum         Case Is >= 1             While Abs(BaseNum) > 1000                 BaseNum = BaseNum / 1000             Wend         Case 0             'Do nothing         Case Else             While Abs(BaseNum) < 1                 BaseNum = BaseNum * 1000             Wend     End Select     MySciNum = BaseNum End Function

이 함수는 숫자 만 반환합니다. 적절한 미터법 접두사가있는 단위를 반환하려면 다음 함수를 사용합니다. 셀 참조와 단일 유닛의 이름을 전달하기 만하면됩니다.

예를 들어 = MySciPre (A2, “foo”)를 사용할 수 있습니다. 매크로는 다음과 같습니다.

Function MySciPre(BaseNum As Double, Unit As String) As String     Dim OrigNum As Double     Dim Pref As Integer     Dim Temp As String

Pref = 0     OrigNum = BaseNum     Select Case BaseNum         Case Is >= 1             While Abs(BaseNum) > 1000                 BaseNum = BaseNum / 1000                 Pref = Pref + 1             Wend         Case 0             Pref = 99         Case Else             While Abs(BaseNum) < 1                 BaseNum = BaseNum * 1000                 Pref = Pref - 1             Wend     End Select

Select Case Pref         Case -6             Temp = "atto" & Unit         Case -5             Temp = "femto" & Unit         Case -4             Temp = "pico" & Unit         Case -3             Temp = "nano" & Unit         Case -2             Temp = "micro" & Unit         Case -1             Temp = "milli" & Unit         Case 0             Temp = Unit         Case 1             Temp = "kilo" & Unit         Case 2             Temp = "mega" & Unit         Case 3             Temp = "giga" & Unit         Case 4             Temp = "tera" & Unit         Case 5             Temp = "peta" & Unit         Case 6             Temp = "exa" & Unit         Case Else             Temp = ""

End Select

If Len(Temp) > 0 Then         Temp = LCase(Temp)

Temp = UCase(Left(Temp, 1)) & Mid(Temp, 2)

If Abs(OrigNum) <> 1 Then Temp = Temp & "s"

End If

MySciPre = Temp End Function

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

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

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

이 팁 (2928)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Engineering_Calculations [Engineering Calculations].