Excel

단위 앞의 숫자 추출하기(3) - 한글

별동산 2024. 3. 1. 08:26
반응형

한글은 Code, UniCode 함수를 이용할 수도 있고, Mid 함수를 이용할 수도 있습니다.

 

 

단위앞 숫자 추출(3)(문제).xlsx
0.01MB

 

 

5. 한글 앞의 숫자 추출하기

 

가. 한글에 해당하는 Code 또는 UniCode값 알아내기

코드 값을 알아내기 위해 i11셀에 =code(h11)이라고 입력하면 42145가 구해지고,

유니코드 값을 알아내기 위해 j11셀에 =unicode(h11)이라고 하면 12593이 구해집니다.

 

이제 i11셀과 j11셀을 선택한 후 j11셀의 채우기 핸들을 더블 클릭하면 

나머지 한글의 (유니) 코드 값을 알 수 있습니다.

따라서, 이것을 이용해서 한글의 위치를 알 수 있고, 1을 빼면 숫자만 구할 수 있습니다.

 

나. 숫자 추출하기

(1) Code 함수 이용하기

영문자의 위치를 구해서 숫자를 추출하는 D3셀의 수식을 복사해서 D11셀에 붙여 넣고,

Code값 65를 한글은 Code 값이 42145부터 시작하고, UniCode 값은 12593부터 시작하므로 이 숫자로 수정하면 됩니다.

 

 

=1*LEFT(B11,MATCH(TRUE,CODE(MID(B11,COLUMN(A:M),1))>=65,0)-1)에서

65를 42145로 수정하고, B11셀이 옆으로 복사할 때 B열이 변경되면 안 되므로 B앞에 $표시를 추가하고,

Column함수의 인수인 A:M도 변경되면 안 되므로 F4키를 눌러 $ 기호를 추가합니다.

 

그러면 수식은 아래와 같이 되고, 값 1이 잘 구해졌습니다.

=1*LEFT($B11,MATCH(TRUE,CODE(MID($B11,COLUMN($A:$M),1))>=42145,0)-1)

 

 

(2) UniCode 함수 이용하기

D11셀의 채우기 핸들을 E11셀까지 끌고,

Code를 unicode로 수정하고, 숫자 42145를 12593으로 수정합니다.

 

이제 D11셀과 E11셀을 선택하고, 채우기 핸들을 더블 클릭하면

원하는 숫자 1, 1, 6, 10, 2가 맞게 구해졌습니다.

 

참고로 42145가 12593보다 크므로

Code함수를 이용할 때도 42145를 12593으로 수정해도 같은 결과가 나옵니다.

 

다. Mid 함수 이용

Mid함수는 시작 위치부터 구하고자 하는 개수의 문자를 추출해 주는 함수로 위에서 사용됐는데,

이것을 이용해서도 한글의 위치를 구하고, 숫자를 추출할 수 있습니다.

 

=1*LEFT($B11,MATCH(TRUE,MID($B11,COLUMN($A:$M),1)>="가",0)-1)라고,

UnidCode 함수를 삭제하고, 12593을 한글의 시작 글자인 "가"로 수정하면 됩니다.

 

만약 한글의 범위를 "가"에서 "힣"으로 지정하려면

And 함수를 이용하면 안 되고, 배열 수식의 And 연산자인 *를 사용해야 합니다.

=1*LEFT($B11,MATCH(TRUE,(MID($B11,COLUMN($A:$M),1)>="가")*(MID($B11,COLUMN($A:$M),1)<="힣"),0)-1)

 

그런데 결괏값이 #N/A로 표시됩니다.

 

원인을 알아내기 위해 (MID($B11,COLUMN($A:$M),1)>="가")*(MID($B11,COLUMN($A:$M),1)<="힣")을

마우스로 끌어 선택하고 마우스 커서를 올려놓으면 365 버전의 경우는 계산식의 값을 그 위에 0,1,0... 식으로 표시해 주는데,

 

이하 버전의 경우는 F9키를 눌러서 값을 확인해야 합니다.

 

선택한 범위 수식의 결괏값을 확인해 보면 True가 아니라 1이 반환돼서 그런 것이므로 True를 1로 수정하면 됩니다.

원하는 값 1이 구해졌습니다.

 

통상적으로는 1이 True라고 하는데, Match함수에서는 True와 1을 구분하는 듯합니다.

 

이제 F11셀의 채우기 핸들을 더블 클릭해서 F15셀까지 채우면 됩니다.

 

 

6. 한글과 영문자 혼재시 숫자 추출하기

 

아래와 같이 단위가 영어와 한글이 혼재해 있을 때

 

한글은 Code 값이 42145부터 시작하고, 영문은 65부터 시작하지만,

작은 값이 65이므로 Code함수를 이용할 때 값을 65로 하면, 다시 말해 D3셀의 수식을 복사해서 D19셀부터 D23셀에 붙여 넣으면 한글과 영문이 섞여 있을 때 원하는 숫자를 추출할 수 있습니다.

 

단위앞 숫자 추출(3)(답).xlsx
0.01MB

반응형