텍스트 값에서 숫자가 아닌 첫 번째 찾기 (Microsoft Excel)
Tony는 워크 시트에 숫자와 기타 문자로 구성된 데이터를 가지고 있습니다. 예를 들어 “1234567Blue”가 포함 된 셀이있을 수 있습니다. Tony는 숫자가 아닌 첫 번째 문자가 발생하는 문자 위치를 파악할 수 있기를 원합니다. 텍스트 “1234567Blue”의 예에서 Tony는 숫자가 아닌 첫 번째 문자가 위치 8에 있음을 알아낼 방법을 원합니다.
원하는 가치를 얻는 두 가지 기본 방법이 있습니다. 첫 번째는 배열 수식을 사용하여 위치를 계산하는 것입니다. 다음 배열 수식 (Ctrl + Shift + Enter를 사용하여 입력)은 대부분의 경우 작동합니다.
=MATCH(TRUE,ISERROR(VALUE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))),0)
이 배열 수식이 작동하지 않는 유일한 경우는 A1 셀이 비어 있거나 엄격한 숫자 값을 포함하는 경우입니다. 목록에 이러한 유형의 데이터가 포함되어 있거나 전혀 데이터가 없을 수있는 경우 약간 더 긴 배열 수식 사용을 고려해야합니다.
=IF(LEN(A1)=0,0,MIN(IF(1ISNUMBER(1MID(A1,ROW(INDIRECT("A1:A"& LEN(A1))),1))=0,ROW(INDIRECT("A1:A"&LEN(A1))),LEN(A1)+1)))* (ISNUMBER(A1)=FALSE)
Ctrl + Shift + Enter를 사용하여 입력 한 단일 배열 수식입니다. A1에 숫자가 아닌 문자가 포함되지 않은 경우 (빈 셀 또는 “123”과 같은 값)을 올바르게 처리합니다.
원하는 위치를 반환해야하는 또 다른 가능한 배열 수식은 다음과 같습니다. 이것은 빈 셀과 엄격하게 숫자 값을 처리해야하지만 이전에 제시된 배열 수식보다 짧습니다 :
=IFERROR(MATCH(1,ISERR(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)1)1,),)
물론 첫 번째 숫자가 아닌 문자의 위치를 찾는 다른 방법은 사용자 정의 함수를 만드는 것입니다. 이러한 매크로를 구현할 수있는 방법에는 여러 가지가 있습니다. 매크로를 구현하는 가장 쉬운 방법 중 하나는 매크로에 전달되는 모든 문자의 각 문자를 단계별로 실행하는 것입니다. 숫자 (48-57)에 대한 ASCII 코드 범위를 벗어난 문자가 발견되면 첫 번째 위치를 찾은 것입니다. 다음 매크로는 이러한 유형의 기술을 수행하는 방법을 보여줍니다.
Function FirstNonDigit(str As String) Dim iChar As Integer Dim iPos As Integer Dim J As Integer Application.Volatile iPos = 0 For J = 1 To Len(str) iChar = Asc(Mid(str, J, 1)) If iChar <= 47 Or iChar >= 58 Then iPos = J Exit For End If Next J FirstNonDigit = iPos End Function
함수를 사용하려면 워크 시트에서 다음과 같은 수식을 사용하면됩니다.
=FirstNonDigit(A1)
참조하는 셀이 비어 있거나 숫자 만 포함 된 경우 함수는 0 값을 반환합니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (10610)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Finding_the_First_Non-Digit_in_a_Text_Value [텍스트 값에서 첫 번째가 아닌 숫자 찾기]
.