김데이의 365일

[엑셀] 문자 찾기 비교 FIND 함수 vs SECRCH 함수 본문

회사 실무 TIP/엑셀

[엑셀] 문자 찾기 비교 FIND 함수 vs SECRCH 함수

theday365 2023. 8. 16. 08:02
반응형

안녕하세요, 김데이입니다. 

엑셀 초반 포스팅에서 텍스트 기초 함수를 언급한 적이 있는데요, 오늘 소개해드리는 FIND 함수와 SEARCH 함수 역시 텍스트 기초 함수입니다. 두 함수는 사용법이 비슷한 듯 보이지만 결과는 조금 다르게 나옵니다. 함수 설명과 함께 어떻게 사용하면 좋을 지 설명 해 드리면서 응용법도 간단하게 설명 해 드리도록 하겠습니다 ^^ 

 

엑셀 함수 FIND / SEARCH 함수 비교하기
엑셀 함수 FIND / SEARCH 함수 비교하기

 


 

 

1. FIND함수 vs SEARCH함수

두 함수를 같이 소개 해 드리는 이유는 두 함수의 기본 기능이 아주 똑같기 때문입니다. 두 함수 모두 "찾고 싶은 문구"가 선택 된 셀에서 몇번째에 있는지 "해당하는 위치를 반환"하는 역할을 하며 찾는 텍스트가 한 글자가 아닌 두글자 이상의 단어인 경우에는 "단어의 시작점"을 찾아내 줍니다. 

 

Find 함수와 Search 함수의 기본 기능 설명찾을 값으로 단어를 선택 한 경우 단어가 처음 시작하는 위치가 결과값으로 나옴
[왼쪽] Find 함수와 Search 함수의 기본 기능   /   [오른쪽] 찾을 값으로 단어를 선택 한 경우 단어가 처음 시작하는 위치가 결과값으로 나옴

 

 

 - FIND(찾을 텍스트, 찾을 셀) : 대소문자 구분은 하지만 와일드 카드 구문은 구분 못함 → 입력한 텍스트를 그대로 찾아냄

 - SEARCH(찾을 텍스트, 찾을 셀) : 대소문자 구분은 못하지만 와일드 카드 구문은 사용 가능 → 입력한 텍스트에 대해서 유연성 있게 찾아냄

대소문자 구분 확인 결과
대소문자 구분 확인 결과

기준값에 사용된 "A"는 대문자입니다. 따라서 소문자"a"를 검색하게 되면 Find 함수에서는 값을 찾지 못하고, Search 함수에서는 값을 찾아내게 됩니다.

 

와일드 카드 구문 확인 결과
와일드 카드 구문 확인 결과

 

와일드카드 구문의 경우에도 Find 함수는 값을 찾아내지 못하였고, Search 함수는 값을 찾아내어 반환 해 주었습니다.

 

(와일드카드 구문이란? 와일드카드 라는 문자를 사용하여 만들어내는 문장으로 문자 앞,뒤에 특수문자를 사용하여 좀 더 확장된 단어로 만들어 사용하는 것. 예문에 사용한 '*'를 단어 앞뒤에 붙이면 단어를 포함한 어떠한 단어도 반환 시켜준다는 뜻이 있음. 자세한 내용은 추후 한번 더 포스팅 할 예정) 

 

 

예문만 봐서는 깐깐하게 구는 Find 함수보다 Search 함수가 더 쓸만 해 보이겠지만 정확한 데이터 추출을 원할 경우 Find 함수를 사용해야 하고, 포괄적으로 검색을 할 경우에는 Search 함수를 사용해야 합니다.

 

하지만 이것보다 더 중요한 사실!! 실제 업무에서는 두 함수를 단독으로 사용하는 경우가 많이 없기 때문에 어떤 용도로 구분해서 사용할 지에 대한 것 보다는 이 함수들을 여러 함수들과 어떻게 응용해서 사용할 것인지를 익히는 것이 더 중요합니다. 아래에 사용 예시를 보여드리도록 하겠습니다.

 

 

 

 응용 1) LEFT 함수 / RIGHT 함수와 사용하기 

결과값으로 가져와야 하는 값의 글자수가 일정하지 않을 때 FIND함수나 SEARCH 함수를 통하여 기준을 잡고, LFET함수나 RIGHT함수를 사용하여 원하는 문자를 반환하는 방식을 사용합니다.  

LEFT 함수와 함께 FIND 함수 또는 SEARCH 함수 사용하기
LEFT 함수와 함께 FIND 함수 또는 SEARCH 함수 사용하기

[문제] 이메일 주소에서 이메일 계정 ID만 추출하기

 

1. 이메일 계정 ID는 "@"이전에 나오는 문구입니다. 따라서 기준이 되는"@"의 위치를 Find 함수 또는 Search 함수를 통하여 확인 합니다. 

=LEFT(위치,자릿수=Find("@",F5)

 

2. 내가 찾고자 하는 이메일 계정 ID 다음에 "@"가 있으므로, 그대로 사용하게 되면 "@"까지 나오기 때문에 자릿수에서 "-1"을 해 줍니다. 

=LEFT(위치,자릿수=Find("@",F5)-1

 

3. 마지막으로 실제 이메일 계정 ID를 찾을 "위치"를 선택 해 줍니다. 

=LEFT(F5,Find("@",F5)-1

 

 

 

 응용 2) 특정 단어 찾아내서 구분하기 

우리가 이전에 배웠던 IF 함수와 오늘 새로 배울 ISERROR 함수를 통하면 데이터 안에 특정 단어가 있는지에 대한 유무를 확인할 수 있습니다. 단어가 확인되면 IF 함수 설정에 따라 새로운 값으로 반환합니다.

 

- ISERROR(확인 할 문장) : 확인 할 문장이 오류가 나는 문장이면 TRUE를 반환, 오류가 없는 문장이면 FALSE를 반환 

 

IF 함수 안에 ISERROR 함수 & FIND 함수 또는 ISERROR 함수 & SEARCH 함수를 넣어서 사용하기
IF 함수 안에 ISERROR 함수 & FIND 함수 또는 ISERROR 함수 & SEARCH 함수를 넣어서 사용하기

 

[문제] 부서에 따라 대외비를 지급할지 말지 결정하기(영업팀만 지급)

 

1. 일단 부서명에 "영업"이 있으면 "지급", 없으면 "지급안함"을 출력 해야합니다. 

조건 : FIND("영업",D4) & 출력 : IF(조건,"지급","지급안함") → =IF(FIND("영업",D4),"지급","지급안함")

 

2. 부서명에 "영업"이 없는 경우 에러값(#VALUE)을 출력하므로 이러한 경우에도 제대로 된 출력이 나오게 하기 위해 FIND 함수를 ISERROR 함수로 감싸 줍니다. 

=IF(ISERROR(FIND("영업",D4)),"지급","지급안함")

 

3. ISERROR 함수는 오류가 나는 문장에 대해서 True를 반환하므로 기존에 셋팅해둔 값과 정 반대의 값을 출력하게 되므로 IF 함수에 셋팅 해 두었던 True, False 출력값을 반대로 셋팅 해 줍니다. 

=IF(ISERROR(FIND("영업",D4)),"지급안함","지급")

 

 

** 응용 방법 모두 FIND함수로 예를 들었지만 SEARCH 함수도 동일하게 사용 가능합니다.


 

응용 방법에 대해서 많이 설명 해 드리고 싶었는데 당장 생각나는 예시가 두가지 정도여서 추후에 또 생각나면 "여러 함수 사용하기" 포스팅에 한번에 정리하여 보여드리도록 하겠습니다.  

다음 번에는 엑셀의 기본 기능 "필터"에 대해서 설명 해 드리도록 하겠습니다😁 

 

반응형