엑셀 / 함수 / FIND, FINDB, SEARCH, SEARCHB / 특정 문자열의 시작 위치를 반환하는 함수
FIND와 SEARCH는 문자열 안에서 찾는 글자가 몇 번째 문자에서 시작하는지 반환합니다. FIND는 대소문자를 구분하고 SEARCH는 구분하지 않으며 와일드카드를 지원합니다. 보통의 텍스트 작업은 문자 기준 함수를 사용하고, FINDB·SEARCHB 같은 바이트 기준 함수는 기존 통합 문서의 호환성과 언어 환경을 확인해야 합니다.
구문과 인수 순서
=FIND(find_text,within_text,[start_num]) =SEARCH(find_text,within_text,[start_num])
find_text는 찾을 문자열, within_text는 검색 대상, start_num는 검색을 시작할 위치입니다. 위치는 1부터 시작하며 생략하면 첫 문자부터 찾습니다. 반환값은 검색 시작점에서의 거리 아닌 원래 문자열 전체에서의 위치입니다.
구문과 지원 제품은 Microsoft의 SEARCH 함수 설명, Microsoft의 FIND·SEARCH 오류 안내에서 확인할 수 있습니다.
대소문자와 검색 시작 위치 예제
=FIND("C","ABCDE")
=FIND("c","ABCDE")
=SEARCH("c","ABCDE")
=FIND("B","ABCDABCD",3)
FIND와 FINDB를 비교한 기존 예제입니다. 영문만 있는 ABCDE에서 C의 위치는 3이며 FIND로 소문자 c를 찾으면 #VALUE! 오류가 납니다. SEARCH로 바꾸면 대소문자를 구분하지 않아 3을 반환합니다.
마지막 수식은 세 번째 문자 C부터 검색하여 두 번째 B를 찾고 6을 반환합니다. 기존 화면의 ABCDㄱABCD처럼 가운데 다른 문자가 있으면 FIND로 찾은 두 번째 B는 7입니다. start_num가 3이라는 것은 ‘Z부터 찾는다’는 뜻이 아닙니다.
와일드카드가 필요한 경우
SEARCH는 ?로 문자 하나, *로 임의 길이의 문자열을 찾을 수 있습니다. 기호 자체를 찾으려면 ~?, ~*로 씁니다. FIND는 이런 와일드카드 검색을 하지 않습니다.
예를 들어 =SEARCH("*","ABC")는 별표 문자를 찾는 수식이 아닙니다. 실제 별표의 위치가 필요하면 =FIND("*",A2) 또는 =SEARCH("~*",A2)를 사용하세요.
FINDB·SEARCHB와 오류 주의사항
FINDB·SEARCHB는 기존 바이트 기준 수식입니다. 한글을 무조건 UTF-8 바이트 수로 세는 함수가 아니며 더블바이트 문자 지원 언어 설정 등 환경에 따라 문자 기준 함수와 결과가 같거나 달라집니다. 새 수식에는 가능한 한 FIND·SEARCH를 사용하고 기존 파일은 대표 문자열로 결과를 확인하세요.
찾을 문자가 없거나 start_num가 1 미만이거나 문자열 길이를 넘으면 #VALUE! 오류가 날 수 있습니다. 문자 존재 여부만 판단하려면 =ISNUMBER(SEARCH("ABC",A2))처럼 위치가 숫자인지 검사합니다. 값 추출은 특정 문자 앞뒤 텍스트 추출과 함께 활용할 수 있습니다.










