엑셀 SEARCH 함수는 문자열에서 특정 텍스트의 시작 위치를 찾는 함수입니다.
=SEARCH(찾을문자, 문자열, [시작지점])
- 검색할 텍스트에는 와일드카드(*,?,~)를 사용할 수 있습니다.
- '4'를 입력하면, 4번째 문자부터 검색을 시작합니다. 기본값은 '1' 입니다.
SEARCH 함수는 문자열에서 특정 텍스트의 시작 위치를 반환하는 함수입니다. FIND 함수와 비슷하지만, 대소문자를 구분하지 않고 와일드카드 문자(*,?)를 사용할 수 있어 더욱 유연한 검색이 가능합니다.
=SEARCH("app*","this is apple tree") / / 9를 반환합니다.
유사한 함수로 FIND 함수는 대소문자를 구분하고 와일드카드를 사용할 수 없어 보다 엄격하게 텍스트를 검색할 수 있습니다. FIND 함수와 SEARCH 함수의 주요 차이점은 다음과 같습니다.
함수 | 대소문자구분 | 와일드카드 사용 |
FIND 함수 | 구분함 | 사용 불가 |
SEARCH 함수 | 구분하지 않음 | 사용 가능 |
SEARCH 함수는 다른 함수와 함께 사용할 때 더욱 강력한 기능을 발휘합니다. 예를 들어, ISNUMBER 함수와 함께 사용하여 문장에서 '특정 단어의 포함 여부'를 확인할 수 있습니다.
=ISNUMBER(SEARCH(단어,문장)) / / 단어가 문장에 포함된 경우 TRUE를 반환합니다. =IF(ISNUMBER(SEARCH(단어,문장)),"포함","미포함") / / 단어가 문장에 포함된 경우 "포함"을 출력합니다.
단어 포함 여부 공식의 자세한 동작 원리와 사용 예제는 아래 기초 입문 강의에서 자세히 정리했으니 참고하세요!👇
이메일 주소에서 특정 도메인 여부를 판단해야 할 경우, 다음과 같이 함수를 사용할 수 있습니다.
=ISNUMBER(SEARCH("@gmail.com",이메일)) / / 도메인이 gmail.com일 경우 TRUE를 반환합니다.
여러 구분기호로 나뉘어 작성된 제품 코드가 있을 때, 아래 함수를 사용하면 제품코드의 특정 부분을 추출할 수 있습니다.
/ / 제품코드 : "ORD-20240101-A001" =LEFT(제품코드,SEARCH("-",제품코드)-1) =LEFT(제품코드,4-1) =LEFT(제품코드,3) ="ORD"
REPLACE 함수를 함께 사용하면, 문자열에서 특정 부분만 찾아 변경할 수 있습니다. 예를 들어, 다음과 같이 함수를 작성하면, .확장자가 ".pdf" 인 파일을 ".docx"로 변경할 수 있습니다.
/ /경로 : "C:\...\파일.pdf" =REPLACE(경로,SEARCH(".pdf",경로),4,".docx") / / 파일 경로에 .pdf가 있을 경우, pdf 확장자를 .docx로 변경합니다. / / 예: "파일.pdf" → "파일.docx"
SEARCHB 함수는 DBCS 언어(한국어, 일본어, 중국어)가 기본 언어일 경우 사용하는 함수입니다. SEARCHB 함수는 바이트 기준으로 찾을문자의 위치를 반환합니다. 한국어의 경우 문자당 2바이트를 사용합니다.
=SEARCH("강남", "서울특별시 강남구") '// 서(1) + 울(1) + 특(1) + 별(1) + 시(1) + 공란(1) 으로 = 7을 반환합니다. =SEARCHB("강남", "서울특별시 강남구") '// 서(2) + 울(2) + 특(2) + 별(2) + 시(2) + 공란(1) 으로 = 11을 반환합니다.
찾으려는 텍스트가 문자열에 없거나, 시작위치가 문자열의 길이보다 크면 #VALUE! 오류를 반환합니다.
SEARCH 함수는 영문검색시 대/소문자를 구분하지 않습니다.
시작위치가 0보다 작으면 #VALUE! 오류를 반환합니다.
SEARCH함수의 찾을 문자에는 와일드카드를 사용할 수 있습니다.
=SEARCH(" *밭","한국과수원 사과밭 사과나무") '// "밭"으로 끝나는 단어를 검색합니다. * 앞에 띄어쓰기를 포함해서 검색하는 것을 주의해주세요. '// "사과밭"의 시작위치인 '6'을 반환합니다.