엑셀

엑셀 FIND 함수, SEARCH 함수 특정 문자의 위치 찾기

콘파냐 2017. 6. 25. 23:45

엑셀에서 텍스트 안에서 특정 문자열의 위치를 찾는데 FIND, SEARCH 함수가 쓰입니다. 

이 함수들은 단독으로 쓰이기 보다는 다른 함수들과 같이 쓰이는데 곧 알아보겠습니다.

그럼 이 두 함수의 어떤 차이점이 있을까요?

FIND 함수는 알파벳의 대/소문자를 구분하여 찾습니다.(예를 들면 a와 A는 엄연히 다르다고 여기는 거죠.)

SEARCH함수는 알파벳의 구분은 없고 와일드카드(*, ?)을 사용합니다. FIND보다 좀 관대한? 검색을 합니다.

하나씩 알아보겠습니다.

엑셀 FIND 함수

FIND( 찾을 문자(열), 텍스트, 시작 위치)

시작위치를 생략하면 텍스트의 첫 문자부터 찾기 시작합니다. 그리고 찾을 문자(열)을 발견했다면 더 이상 찾지 않습니다. 텍스트찾을 문자(열)이 중복되어 있더라도 가장 첫 번째 녀석만 찾는다는 말이죠.

ab abc abcd abcde 라는 텍스트에서 abc를 찾는 수식입니다.

3개의 abc가 중복되어 있지만 가장 첫 번째 녀석을 찾아 그 위치인 4를 반환합니다. 

띄어쓰기로 생긴 공백 역시 하나의 문자입니다.(공백문자)

다음은 대소문자를 구분하는 예제입니다.

같은 abc지만 대소문자가 다릅니다. FIND 함수는 대소문자까지 정확히 일치하는 abC의 위치를 찾아줍니다. 하지만 SEARCH 함수는 대소문자를 구분하지 않습니다. FIND를 SEARCH로 바꿔보겠습니다.

SEARCH 함수는 대소문자에 상관없이 검색하므로 abc가 검색되어 1이 반환되었습니다.


  • FIND 함수의 응용

FIND 함수로 찾은 문자(열)의 위치는 그 자체로는 그다지 쓸모가 없습니다. 보통 LEFT, MID, RIGHT 함수와 같이 쓰이는데 그 쓰임새를 알아보겠습니다.

데이터 열을 보면 ,(콤마)로 품명과 가격이 하나의 셀에 입력되어 있습니다. 이 데이터를 분해해서 품명과 가격으로 넣어보겠습니다.

=LEFT(B3, FIND(",",B3) - 1)

품명은 ,(콤마) 앞까지의 문자열입니다. FIND 함수로 ,(콤마)의 위치를 찾아서 -1을 해주어 품명의 마지막 문자열 위치를 찾습니다. 위치값을 LEFT함수에 넘겨주어 ,(콤마) 앞까지의 텍스트만 잘라냅니다.

=RIGHT(B3, LEN(B3) - FIND(",",B3))

가격은 ,(콤마) 이후의 모든 문자열입니다. ,(콤마) 이후의 문자의 개수를 찾아서 RIGHT함수에 넘겨주어 가격에 해당하는 텍스트를 잘라낼 수 있습니다. ,(콤마) 이후의 문자의 개수는 전체 문자의 개수 - ,(콤마)까지의 문자 의 갯수입니다. LEN함수가 같이 사용됐습니다.

  • SEARCH 함수의 와일드 카드 사용

주소에서 동만 알아내기

정규표현식 정도로 정교하게 문자열을 찾을 수는 없지만 엑셀에서도 와일드 카드의 일부를 사용할 수 있습니다. 우선 예제를 보겠습니다.

이 예제의 최종 목적은 주소에서 무슨동인지만 알아내는 것입니다. 우선 와일드카드는 *, ?가 있습니다.

* : 문자의 개수에 관계없이 모든 문자에 매치된다. (공백문자, 문자없음도 포함)

? : 단 하나의 문자에 매치된다.(공백문자 포함) 

=SEARCH("구 *동", B3)

만약 찾을 문자열이 " *동"이라면 4가 나옵니다. 왜냐면 서울시 다음에도 공백이 있기 때문이죠.

주소형식은 동이름이 나오기 전에 구이름이 나오고 공백이 있습니다. 따라서 "구 *동"이라는 텍스트를 찾은 것입니다. 

그런데 결과로 나온 7이라는 값에서 +2를 해주어야 실제 동이름의 시작위치가 됩니다.


=FIND("동 ", B3)

동이름의 끝의 위치를 찾는 수식입니다. FIND 대신 SEARCH를 사용해도 상관없습니다.

따라서 동이름의 위치는  7+2 = 9 번째 문자부터 11번째 까지입니다. 다시말해 9번째 위치부터 3개의 문자가 동이름이고 MID 함수에 넣어주면 됩니다.


정리하여 하나의 수식으로 나타내면 다음과 같습니다.

=MID(B3,SEARCH("구 *동",B3)+2,FIND("동 ", B3) - (SEARCH("구 *동",B3)+2)+1)

좀 길어보일 뿐이지 위에서 설명한 내용에서 더한 내용은 없습니다. 

반응형