엑셀 SEARCH 함수는 텍스트에서 대소문자 구분없이 특정 텍스트의 위치를 찾아줍니다. 단순히 위치만 찾아주므로 함수 단독으로는 잘 사용되지 않고 LEFT, MID, RIGHT 함수 등 텍스트를 처리하는 함수 안에 포함되어 많이 사용됩니다.
기능이 유사한 FIND 함수는 대소문자를 구분해서 찾아주지만 SEARCH함수는 알파벳 대/소문자 구분없이 위치를 찾아주고 와일드카드(*, ?)를 쓸 수 있다는 점이 다릅니다.
구문(Syntax)
SEARCH(find_text, within_text, [start_num])
텍스트에서 특정 텍스트의 위치를 찾아준다. 알파벳이 포함된 경우 대/소문자를 구분하지 않고 찾아준다.
인수
- find_text : 찾으려는 텍스트
- within_text : 찾으려는 텍스트가 포함된 전체 텍스트
- start_num : 찾기 시작할 위치, 생략가능하며 생략시 1로 간주되므로 항상 첫번째부터 찾는다.
사용 예
1) 텍스트에서 처음부터 세어서 위치 찾기
'Hello, Everybody!'에서 'E'의 위치를 처음부터 찾으려면 다음과 같이 수식을 입력합니다.
=SEARCH("E","Hello, Everybody!") => 2
세 번째 인수 start_num이 생략되었으므로 대문자 'E'의 위치를 처음부터 찾지만 대소문자 구분하지 않으므로 먼저 발견되는 소문자 'e'의 위치 2를 반환
=SEARCH("하","안녕하세요 하지원입니다.") => 3
'하'는 세 번째에 있으므로 3을 반환
2) 텍스트에서 중간부터 세어서 위치 찾기
=SEARCH("E","Hello, Everybody!",3) => 8
'Hello, Everybody!' 에서 대문자 'E'의 위치를 찾되 세 번째 인수 start_num이 3이므로 3번째 문자부터 찾아서 'Everybody'의 'E'의 위치 8을 반환
=SEARCH("하","안녕하세요 하지원입니다.",4) => 7
'하'를 찾되 네 번째 문자부터 찾으므로 '하지원'의 '하'를 찾아 7을 반환
3) 와일드카드 문자로 위치 찾기
와일드카드 문자는 좀 더 정교한 방법으로 값을 찾을 때 사용하는데 두 종류가 있습니다.
- 물음표(?) : 한 개의 임의의 문자
- 별(*) : 여러 개의 임의의 문자열
=SEARCH("b?d","Hello, Everybody!") => 13
물음표(?)는 한 개의 문자를 의미하므로 'b?d'를 입력하면 b로 시작하고, 중간에는 아무 문자 1자리이면서, d로 끝나는 'bod'의 위치 13을 반환
=SEARCH("b?d","Bedroom") => 1
'Bed' 위치 1을 반환
=SEARCH("안*장터","춘천지역장터, 안성지역장터, 안동지역장터") => 9
별(*)은 여러 개의 임의의 문자열을 의미하므로 '안*장터'를 입력하면 '안'으로 시작하고, '안'뒤에는 몇개의 문자열이 오든 상관없이 '장터'로 끝나는 값을 찾으므로 '안성지역장터' 문자열이 있는 위치 9를 반환
4) SEARCH함수 응용 - 텍스트 잘라내기
이번에는 SEARCH 함수를 응용해서 텍스트의 일부를 잘라내 보겠습니다.
'Hello, Everybody!'에서 쉼표(,)를 기준으로 앞에 있는 텍스트를 잘라내려면 다음과 같이 수식을 입력합니다.
=LEFT(B25,SEARCH(",",B25)-1)
SEARCH 함수는 쉼표의 위치 6을 반환하므로 위 수식은 다음과 같습니다.
=LEFT(B25,6-1)
=LEFT(B25,5)
텍스트를 처음부터 잘라내주는 LEFF 함수는 [B25] 셀의 값에서 앞 5자리만 잘라서 'Hello'를 반환합니다.
'춘천지역장터, 안성지역장터, 안동지역장터'에서 '안성'이 있는 위치를 기준으로 뒤에 있는 문자열을 잘라내려면 다음 수식을 입력합니다.
=MID(B26,SEARCH("안성",B26),LEN(B26))
SEARCH 함수는 '안성'의 위치 9를 반환하므로 위 수식은 아래와 같습니다.
=MID(B26,9,LEN(B26))
LEN 함수는 전체 문자열 길이 22를 반환하므로 최종 수식은 다음과 같습니다.
=MID(B26,9,22)
텍스트를 중간부터 잘라내주는 MID 함수는 전체 문자열의 9번째부터 22자리를 잘라내어 '안성지역장터, 안동지역장터'를 반환합니다.
SEARCHB 함수
SEARCHB 함수는 더블바이트 문자(한글,일본어,중국어 등 글자 하나가 2바이트인 문자)가 포함되어 있으면 한 글자를 2자리로 계산하는 것만 다르고 SEARCH 함수와 사용법이 같습니다.
=SEARCHB(",","Hello, Everybody!") => 6
'Hello, Everybody!'에는 더블 바이트 문자가 없으므로 쉼표의 위치 6을 반환
=SEARCHB("강산","아름다운 강산") => 3
'아름다운 강산'은 더블 바이트 문자열이므로 한글 한자를 2바이트씩 계산해서 '강산'의 위치 10을 반환
관련 글
안녕하세요
문의가 있어서 댓글을 남김니다
"이 브라우저에 저장" 이라는 문장 10자리 중에서 "브라우저에 저장" 사이에 뛰어쓰기(space) 위치를 찾는 방법을 알수 있는지요
안녕하세요. “브라우저에 저장” 사이에 있는 space는 항상 전체 문장에서 2번째로 나타난다는 가정하에 다음과 같이 구하면 됩니다.
1) “브라우저에 저장”에서의 space의 위치는 =SEARCH(" ",MID(A1,SEARCH(" ",A1)+1,LEN(A1)))
2) 전체 문장에서 2번째로 나타나는 space의 위치는 =SEARCH(" ",MID(A1,SEARCH(" ",A1)+1,LEN(A1)))+SEARCH(" ",A1)
감사합니다.