엑셀 / 함수 / 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을 반환합니다.

FIND와 FINDB를 비교한 기존 예제입니다. 영문만 있는 ABCDE에서 C의 위치는 3이며 FIND로 소문자 c를 찾으면 #VALUE! 오류가 납니다. SEARCH로 바꾸면 대소문자를 구분하지 않아 3을 반환합니다.

마지막 수식은 세 번째 문자 C부터 검색하여 두 번째 B를 찾고 6을 반환합니다. 기존 화면의 AB​CDㄱ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))처럼 위치가 숫자인지 검사합니다. 값 추출은 특정 문자 앞뒤 텍스트 추출과 함께 활용할 수 있습니다.

같은 카테고리의 다른 글
엑셀 / 함수 / REPLACE, REPLACEB / 특정 위치의 문자열을 바꾸는 함수

엑셀 / 함수 / REPLACE, REPLACEB / 특정 위치의 문자열을 바꾸는 함수

REPLACE로 위치와 문자 수를 지정해 문자열을 바꾸는 방법을 설명합니다. SUBSTITUTE와의 차이, REPLACEB의 호환성 및 개인정보 표시의 한계를 다룹니다.

엑셀 / VBA / Visual Basic Editor 글꼴 변경하는 방법

엑셀 / VBA / Visual Basic Editor 글꼴 변경하는 방법

VBA 편집기의 글꼴과 크기·코드 색상을 변경하는 위치를 안내합니다. 셀 글꼴과의 차이, 한글·숫자 구분과 변경 전 설정 보관 방법도 설명합니다.

엑셀 / 함수 / ADDRESS / 셀 주소 확인하는 함수

엑셀 / 함수 / ADDRESS / 셀 주소 확인하는 함수

ADDRESS의 행·열 번호와 절대·상대 참조 옵션을 예제로 설명합니다. A1·R1C1 형식, 시트 이름과 반환 문자열의 한계도 다룹니다.

엑셀 / 함수 / DELTA / 두 숫자가 같은지 비교하는 함수

엑셀 / 함수 / DELTA / 두 숫자가 같은지 비교하는 함수

DELTA가 같은 숫자에 1, 다른 숫자에 0을 반환하는 방식과 기본값을 설명합니다. 소수 계산 오차가 있는 수를 비교할 때의 한계도 다룹니다.

엑셀 / 삼각함수(사인, 코사인, 탄젠트 등)의 값 계산하기

엑셀 / 삼각함수(사인, 코사인, 탄젠트 등)의 값 계산하기

SIN·COS·TAN과 역수 함수의 사용법, 도 단위를 라디안으로 변환하는 방법을 정리합니다. 각도 입력 오류와 정의되지 않는 값에 주의하며 삼각함수 계산을 할 수 있습니다.

엑셀 / 하이퍼링크 제거하는 방법, 자동 하이퍼링크 안 생기게 하는 방법

엑셀 / 하이퍼링크 제거하는 방법, 자동 하이퍼링크 안 생기게 하는 방법

기존 하이퍼링크를 제거하거나 입력 시 자동 생성을 끄는 방법을 설명합니다. 텍스트·서식 보존과 HYPERLINK 수식의 별도 처리도 안내합니다.

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

TEXTJOIN의 구분자·빈 셀 옵션을 비교하고 여러 셀을 한 문장으로 연결하는 예제를 안내합니다. 날짜·숫자 서식과 결과 길이 제한도 설명합니다.

엑셀 / 함수 / 함수 목록

엑셀 / 함수 / 함수 목록

합계·조회·조건·문자·날짜 등 목적별로 주요 Excel 함수를 비교합니다. 실제 사용법 링크와 버전·인수·오류 확인 기준을 통해 적합한 함수를 찾을 수 있습니다.

엑셀 / 함수 / SUMSQ / 제곱의 합 구하는 함수

엑셀 / 함수 / SUMSQ / 제곱의 합 구하는 함수

SUMSQ로 여러 수의 제곱합을 구하는 구문과 범위 예제를 안내합니다. 합의 제곱과의 차이, 통계의 편차 제곱합과의 구분도 설명합니다.

엑셀 / 함수 / PRODUCT / 곱하기 함수

엑셀 / 함수 / PRODUCT / 곱하기 함수

PRODUCT로 개별 숫자·범위를 곱하는 방법을 설명합니다. 빈 셀·텍스트·0 처리와 행별 곱의 합을 구하는 SUMPRODUCT의 차이도 확인할 수 있습니다.