티스토리 뷰

FIND 함수로 특정 위치 값 찾고 문자 추출하기

[테스트 버전 : 엑셀 2019]

 

선택한 텍스트에서 찾고자 하는 내용의 위치 값을 알려주는 함수가 FIND 함수인데, 이 함수를 통해 문자 위치를 찾을 수도 있겠지만 약간의 응용을 통해 찾은 문자 뒷 내용을 추출해내는 함수를 만들 수도 있는데요. 이번 포스팅엔 텍스트 위치를 찾을 수 있는 FIND(FINDB) 함수의 기본 사용 방법과 MID, LED 함수를 응용한 문자 추출하기 예제를 다루도록 하겠습니다.

 

엑셀 특정 문자 추출 및 찾기

 

FIND 함수 사용 방법

  • 사용법 : =FIND(찾을 문자, 찾을 문자가 있는 텍스트, 찾기 시작할 위치)
  • 찾을 문자가 있는 텍스트의 "찾기 시작할 위치"부터 찾을 문자를 검색하게 되며, 문자를 찾게 되면 해당 문자가 있는 위치 값을 표시해줍니다. 그리고 찾기 시작할 위치 값은 생략 시 1로 간주됩니다.

 

참고로 FIND와 FINDB 함수는 기본적인 사용 방법이 동일합니다만, FIND는 모든 글자를 1개 단위로 판단한다면 FINDB는 한글/중국어/일어와 같은 2바이트 단위 언어를 2로 인지한다는 게 틀립니다.

 

이런 특성 때문에 셀 위치 판독에 어려움이 있는 FINDB를 사용하는 경우는 많이 못 본 것 같고, 그나마 셀 위치 값 찾기가 용이한 FIND함수 사용 빈도는 좀 있는 것 같습니다.

 

FIND 함수를 이용한 문자 위치 값 찾기

FIND 함수로 특정 문자 찾기 예제

FIND 함수를 통해 각각 한글, 영문일 때의 조건에 대해 특정 문자 찾기를 한 결과입니다.

 

=FIND(B4, B3, 1)

결과 : 3

  • B4셀의 "다" 를 B3셀의 "가나다라마바사"에서 찾으면 왼쪽으로부터 3번째 위치해 있기 때문에 결과는 3이 출력됩니다.
  • 찾기 시작할 위치 값도 1이기 때문에 왼쪽의 첫 번째인 "가"부터 찾기 시작하고, 실제 우측 3번째 위치에 있기 때문에 특별한 오류 없이 결과가 표시됐습니다.

위에서도 언급했지만 FIND는 문자 유형(한글, 영문 등...)에 상관없이 1개의 문자는 1로 인지되기 때문에, 찾고자하는 텍스트 위치 값을 찾기에 용이합니다.

 

 

 

FIND 함수의 시작 위치 값 다르게한 예제
시작위치 3일때...

찾기 시작할 위치 값은 1이 아닌 다른 숫자를 사용해도 무방합니다

 

=FIND(C4, C3, 3)

결과 : 4

  • C4("#") 셀 내용을 C3("ABC#DEFG")에서 찾게 됩니다. 이때 시작 위치가 3으로 지정됐기 때문에 왼쪽으로부터 3번째인 "C"부터 찾게 되고, 4번째 위치한 "#"를 찾게 돼 4란 결과를 보여주게 됩니다.
  • 시작을 3번째 위치에서 했지만, 그 위치를 1이 아닌 3으로 판단한다는 것에 주의할 필요가 있습니다.
  • 만약 찾을 위치 값에 5를 입력했다면 "D"부터 찾게 되기 때문에, 찾을 값이 없다는 #VALUE! 오류가 발생되게 됩니다.

 

 

FINDB 함수 예제

FINDB도 FIND와 사용하는 원리는 모두 동일하지만, 한글(중국어, 일어)은 2바이트 단위로 읽어 들이기 때문에 2로 인식한다는 게 가장 큰 차이점입니다. 

 

=FINDB(B4, B3, 1)

결과 : 5

  • 기본 동작은 FIND와 비슷하게 이루어지지만 결과를 보면 다소 의문점이 생길 수 있는 결과가 나왔습니다.
  • B4("다")를 B3("가나다라마바사")에서 찾게 되면 2+2+2가 돼서 6이 나와야 될 것 같은데 5가 나왔기 때문인데, 이에 대한 정확한 자료를 찾진 못했지만 찾은 값의 시작 or 끝 부분이 한글(중국어, 일어)이라도 1로 인식하는 것이 아닐까 추측합니다. 그렇게 되면 2+2+1이 돼서 5가 되기 때문이지요.

 

사실 한글을 2로 계산하는 것도 활용하기에 애매한 부분도 있고, 결과도 생각한 것과 다르게 나오는 경우가 있어 잘 사용하지 않게 되는 것 같습니다.

 

 

엑셀 특정 문자 값부터 추출해 내기

 

 

특정 문자 추출하는 FIND, MID, LEN 조합

주민번호 뒷자리만을 추출하기 위해 FIND함수와 MID, LEN함수를 함께 사용한 복합 함수를 만들어봤으며, 이렇게 만들어진 위 엑셀 예제의 B5셀 내용에 대한 설명을 다루도록 하겠습니다

 

=MID(B3, FIND(B4, B3) + 1, LEN(B3))

 

  • FIND 함수를 통해 B4("-")에 있는 내용을 B3("000.......")에서 찾게 되고, 동일한 값이 7번째에 위치했기 때문에 FIND 함수 결과는 7입니다
  • LEN 함수를 이용해 B3("000......") 셀에 있는 문자 수를 카운트하면 14라는 결과가 표시됩니다.
  • MID를 이용해 MID(000....., 7 + 1, 14)라는 식이 완성돼, B3셀의 왼쪽으로부터 8번째 내용인 "3"부터 14개의 문자를 표시합니다. 사실 LEN(B3)이라고만 해도 표시가 되긴 하지만, 이렇게 되면 뒷 6자리는 빈셀이 들어오는 것과 마찬가지라 (LEN(B3) - FIND(B4, B3))을 사용하시면 조금 더 정확한 식이라 할 수 있습니다.

물론 정해진 규칙이 있는 텍스트에서 내용 추출할때 이 보다 쉬운 방법들도 있긴 합니다만, FIND 함수로도 특정 문자 값 추출하기가 가능하단 것을 알려드리기 위해 다룬 예제였습니다

 

 

▶▶나를 알고 엑셀을 알면 퇴근시간이 빨라진다 - 당신을 위한 엑셀 포스팅

▶ 엑셀 추천 함수 TOP7 (이것을 알아야 엑셀한다 말할 수 있다)

▶ VLOOKUP 함수 - 내 엑셀 실력에 날개를 달자

▶ RANK 함수로 남들 못하는 '순위' 매겨보자

▶ 행/열 바꾸기 할 줄 아세요? 굉장히 쉬운데!! 의외로 모르는 꿀팁

▶ 아...스트레스 받는 중복 값!! 이걸 찾는 방법 3가지 방법 있다고?

▶ 당신도 고수들 처럼 엑셀 '목록 리스트' 만들 수 있습니다

▶ 조건에 따른 결과 값 얻기? IF 함수 사용할 수 있으면 당신은 중수!

▶ 신용등급과 점수 관리하시나요? 연 3회 무료로 제공되는데 놓이지 마세요

▶ 제 블로그 방문자에게 오픈하는 신용등급 올리는 저만의 방법 Top5

 

LIST