엑셀 FIND 함수는 텍스트의 위치를 찾아줍니다. 단순히 위치만 찾아주므로 함수 단독으로는 잘 사용되지 않고 LEFT, MID, RIGHT 함수 등 텍스트를 처리하는 함수 안에 포함되어 많이 사용됩니다.
기능이 유사한 SEARCH 함수는 알파벳 대/소문자를 구분하지 않고 위치를 찾아주지만 FIND 함수는 대/소문자 구분해서 위치를 찾아주고 와일드카드(*, ?)를 쓸 수 없다는 점이 다릅니다.
구문(Syntax)
FIND(find_text, within_text, [start_num])
텍스트에서 특정 텍스트의 위치를 찾아준다. 알파벳이 포함된 경우 대/소문자를 구분한다.
인수
- find_text : 찾으려는 텍스트
- within_text : 찾으려는 텍스트가 포함된 전체 텍스트
- start_num : 찾기 시작할 위치, 생략시 1로 간주되므로 항상 첫번째부터 찾는다.
사용 예
1) 텍스트에서 처음부터 세어서 위치 찾기
'서울 서대문구 홍익문고'에서 '서'의 위치를 처음부터 찾기
=FIND("서","서울 서대문구 홍익문고") => 1
세 번째 인수 start_num이 생략되었으므로 '서'를 처음부터 찾아 위치 1을 반환
=FIND("다","가나다라가나다라") => 3
'다'를 처음부터 찾아 위치 3을 반환
=FIND("E","Hello, Everybody!") => 8
FIND 함수는 대/소문자를 구분하므로 먼저 발견되는 소문자 'e'는 건너뛰고 대문자 'E'의 위치 8을 반환
2) 텍스트에서 중간부터 세어서 위치 찾기
=FIND("서","서울 서대문구 홍익문고",2) => 4
'서울 서대문구 홍익문고' 에서 '서'의 위치를 찾되 세 번째 인수 start_num이 2이므로 2번째 문자부터 찾아서 '서대문구'의 '서'의 위치 4를 반환
=FIND("가","가나다라가나다라",4) => 5
'가'를 찾되 네 번째 문자부터 찾으므로 5를 반환
3) FIND 함수 응용 - 텍스트 잘라내기
이번에는 FIND함수를 응용해서 텍스트의 일부를 잘라내 보겠습니다.
'서울 서대문구/홍익문고'에서 슬래쉬(/)를 기준으로 앞에 있는 텍스트를 잘라내기
=LEFT(B19,FIND("/",B19)-1)
FIND 함수는 슬래쉬(/) 위치 8을 반환하므로 위 수식은 다음과 같습니다.
=LEFT(B19,8-1)
=LEFT(B19,7)
텍스트를 처음부터 잘라내주는 LEFF 함수는 [B19] 셀의 값에서 앞 7자리만 잘라서 '서울 서대문구'를 반환합니다.
'충청남도/서원서적'에서 슬래쉬(/)가 있는 위치를 기준으로 뒤에 있는 문자열을 잘라내기
=MID(B21,FIND("/",B21)+1,LEN(B21))
FIND 함수는 슬래쉬(/)의 위치 5를 반환하므로 위 수식은 아래와 같습니다.
=MID(B21,5+1,LEN(B21))
슬래쉬(/)의 위치 5의 바로 뒤부터 잘라내야 하므로 5에 1을 더합니다.
=MID(B21,6,LEN(B21))
LEN 함수는 전체 문자열 길이 9를 반환하므로 최종 수식은 다음과 같습니다.
=MID(B21,6,9) => '서원서적'
MID 함수는 전체 문자열의 6번째부터 9자리를 잘라내어 '서원서적'을 반환합니다.
FINDB 함수
FINDB 함수는 더블바이트 문자(한글,일본어,중국어 등 글자 하나가 2바이트인 문자)가 포함되어 있으면 한 글자를 2자리로 계산하는 것만 다르고 FIND 함수와 사용법이 같습니다.
=FINDB("홍","서울 서대문구 홍익문고") => 15
한글은 한 자를 2바이트씩, 공백은 1바이트씩 계산해서 '홍'의 위치 15를 반환
=FINDB("서","서울 서대문구 홍익문고",5) => 6
한글은 한 자를 2바이트씩, 공백은 1바이트씩 계산해서 '서'의 위치 6을 반환(세 번째 인수 start_num이 5이므로 5번째 문자부터 찾음)
관련 글