엑셀 / 함수 / 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))처럼 위치가 숫자인지 검사합니다. 값 추출은 특정 문자 앞뒤 텍스트 추출과 함께 활용할 수 있습니다.

같은 카테고리의 다른 글
엑셀 / 함수 / ISBLANK / 빈 셀인지 확인하는 함수

엑셀 / 함수 / ISBLANK / 빈 셀인지 확인하는 함수

ISBLANK로 실제 빈 셀을 검사하고 IF와 결합하는 방법을 설명합니다. 빈 문자열을 반환하는 수식, 공백 문자와 빈 셀의 차이를 구분할 수 있습니다.

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

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

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

엑셀 / 메모 인쇄하는 방법

엑셀 / 메모 인쇄하는 방법

메모를 화면 위치대로 또는 시트 끝에 모아 인쇄하는 방법을 설명합니다. Microsoft 365 대화형 주석과의 차이 및 잘림·개인정보 노출도 확인합니다.

엑셀 / 숫자를 한글 또는 한자로 나타내는 방법

엑셀 / 숫자를 한글 또는 한자로 나타내는 방법

숫자의 셀 서식을 한글·한자로 표시하는 방법을 설명합니다. 실제 숫자 유지, TEXT로 문자열 만들기와 서식의 보안·정밀도 한계를 구분합니다.

엑셀 / 함수 / TRIM / 공백 제거하는 함수

엑셀 / 함수 / TRIM / 공백 제거하는 함수

TRIM으로 앞뒤 공백과 연속 공백을 정리하는 예제를 설명합니다. 줄바꿈·줄 바꿈 없는 공백·전각 공백이 남는 경우의 확인 방법도 다룹니다.

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

COUNT·COUNTA·COUNTBLANK·COUNTIF·COUNTIFS의 계산 대상을 비교합니다. 수식 빈 문자열, 공백과 0의 처리 및 조건별 개수 예제를 설명합니다.

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

RANK·RANK.EQ·RANK.AVG의 순위 기준과 동점 처리를 비교합니다. 범위 고정과 오름차순·내림차순 예제로 순위표를 만들 수 있습니다.

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

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

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

엑셀 / 특정 문자 앞, 특정 문자 뒤 텍스트 추출하는 방법

엑셀 / 특정 문자 앞, 특정 문자 뒤 텍스트 추출하는 방법

구분자 앞뒤 문자열을 LEFT·RIGHT·FIND·LEN으로 추출합니다. 첫 구분자 기준의 동작, 없는 구분자의 처리 및 TEXTBEFORE·TEXTAFTER 대안도 설명합니다.

엑셀 / 기호, 특수 문자 입력하는 방법

엑셀 / 기호, 특수 문자 입력하는 방법

삽입 탭의 기호와 Windows 한글 입력기의 자음·한자 조합으로 특수 문자를 넣습니다. 글꼴 지원, 계산 기호와 문자 및 실제 체크박스의 차이도 설명합니다.