FIND_MID.xlsx
0.01MB

1. 왜 쓰지?

 엑셀을 사용하다 보면 문자열에서 값을 추출하고 싶을 때가 있다. 예를 들면 아래처럼 어디서 받아온 데이터가 이것저것 섞여있고 패턴이 일정할 때 필요한 값만 빼내서 정리할 수 있다. 이런 경우에 생년만 추출해서 통계를 낸다던가 맨 뒤 두 글자만 추출해서 지역 통계를 낼 때 쓸 수 있다.

 

김영희/19920324/010-xxx-1234/서울
김철수/19971214/010-xxx-4567/부산
...

 

 오피스 설명에는 MID는 1 byte 문자세트에 쓰고 MIDB는 2 byte 문자 세트에 사용한다고 되어있다. 그러나 MID 함수는 생각보다 똑똑해서 1 byte를 쓰는 영문이든 2 byte를 쓰는 한글이든 상관없이 num_chars 인수를 각 언어의 '글자 개수'로 인식한다. 굳이 byte 단위로 문자열을 불러오고 싶을 때는 MIDB를 사용한다.

 

 조금 더 설명하면 일바이트 문자 세트 (single byte chracter set)는 문자 하나가 1 byte에 해당하는 숫자나 영문자가 해당하고 한글이나 특수문자는 문자 하나에 2 byte를 차지하는 이바이트 문자 세트(double byte chracter set)에 해당한다. 

 

2. MID 사용법

=MID(text, start_num, num_chars)
=MIDB(text, start_num, num_bytes)

 

 MID는 추출할 텍스트, 추출을 시작할 위치와 가져올 문자열의 개수를 인수로 갖는다. 추출할 텍스트는 직접 입력할 수도 있지만 아래처럼 셀을 지정해서 가져올 수도 있다.

 

그림 1. MID 사용법

 그림 1에서 MID 함수의 수식을 보면 \$C\$2열의 텍스트에서 19번째 부터 2개의 글자 "24"를 가져온다. 주의할 점은 24 대신 5를 입력하게 되면 "5"가 아닌 글자 두 개 "5K"를 가져오게 되므로 의식적으로 "05"라고 입력하거나 MID 수식을 변경해줘야 한다.

 

3. MID에서 start_num의 지시 위치

 \$C\$2셀에서 24가 시작하는 위치가 19인데 공백과 n 뒤의 줄바꿈(alt+enter)도 하나의 문자로 취급한 것이다. 아래 그림 2에 시작 위치가 어느 문자를 가리키는지 나타냈다.

 

그림 2. MID 함수가 인식하는 문자의 위치

 

4. FIND와 MID의 조합

 FIND 함수를 이용하면 문자열에서 찾고자하는 텍스트의 위치를 쉽게 찾을 수 있다. 따라서 위의 예처럼 문자를 "하나 둘 셋.." 하고 일일이 셀 필요도 없이 FIND 함수로 우리가 원하는 숫자 앞에 있는 "="의 위치를 찾도록 하면 더 편리하고 유연하게 기능을 구현할 수 있다.

 

 위의 예제에서는 꼭 두 글자만 가져와야 해서 한자리 수 온도를 쓸 때 "05"와 같이 입력하는 불편이 있었다. 더욱이 세 자리는 사용할 수도 없기 때문에 매번 수식을 수정해야 하는 불편함이 있다. FIND 함수를 두 번 이용하면 가져올 글자의 자릿수에 상관없이 기준이 되는 두 글자 사이의 값을 자유자재로 가져오도록 할 수 있어 FIND와 MID를 조합해서 사용하는 방법을 아래 글을 따로 작성했다.

 

 

[Excel] 텍스트 위치 찾기 (FIND/FINDB)

1. 왜 쓰지?  MID/MIDB 함수를 사용해서 텍스트에서 원하는 위치의 문자열을 가져올 수 있었다. 어디에 그 문자열이 있을지 문자열의 순서를 정확하게 알고 있다면 MID 함수만 써도 충분하지만 가끔

satlab.tistory.com

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기