전문적인 정보 공유 블로그
Opening Image

기타/엑셀

[엑셀] FIND vs SEARCH 완전정복(와일드카드·대소문자·마지막 구분자 실무 20제)

유뿡뿡 2025. 9. 26. 00:38
반응형

엑셀 FIND/SEARCH 끝판 가이드

문자 위치 찾기부터 LEFT/RIGHT/MID 20개 실무 예제까지, 대소문자·와일드카드 완전 이해

 

 


1. 인사 및 서론

안녕하세요, 유뿡뿡입니다.
보고서, ERP 추출, 고객/상품 코드처럼 “문자열 속에서 필요한 부분만 정확히 잘라내기”는 엑셀 실무의 상수입니다. 이를 정확하고 빠르게 해내는 핵심이 **FIND/SEARCH로 ‘위치(숫자)’를 구한 뒤, LEFT/RIGHT/MID로 ‘추출’**하는 2단계 루틴이에요.

이 글에서는 **FIND와 SEARCH의 차이(대소문자 구분/와일드카드)**를 정확하게 짚고, 실무 20개 예제로 바로 써먹을 수 있는 공식을 제공합니다.
글 기준일: 2025-09-26(Asia/Seoul)

 

핵심 명제: “위치를 숫자로 만들면 문제의 80%가 풀린다.
위치 = FIND/SEARCH 결과값, 추출 = LEFT/RIGHT/MID

 

 

 

 


2. 한눈에 보는 목차

  1. 서론
  2. 목차
  3. FIND/SEARCH 완전 이해(정의, 차이, 인수)
  4. 추출 3대 패턴(앞·뒤·사이)과 공식 템플릿
  5. 실무 20개 예제(이메일·전화·파일·주소·코드·금액·날짜 등)
  6. 에러·공백·특수문자·와일드카드 완전정복 팁
  7. 요약 정리
  8. FQA
  9. 결론

 

 


3. FIND/SEARCH 완전 이해

3-1) FIND: 대소문자 구분 O, 와일드카드 X

  • 정의: 텍스트 안에서 “찾을 문자/단어”가 몇 번째 글자인지 숫자로 반환
  • 구문: =FIND(찾을_문자, 대상_텍스트, [시작위치])
  • 특징
    • ‘A’와 ‘a’를 다르게 취급 (정확 매칭)
    • 와일드카드(*, ?) 지원하지 않음
    • 못 찾으면 #VALUE!

 

주석

  • 대소문자 구분: 영어 대문자/소문자를 서로 다른 문자로 본다는 뜻
  • 시작위치: 검색을 시작할 문자 인덱스(1부터)

 

 

 

3-2) SEARCH: 대소문자 구분 X, 와일드카드 O

  • 정의: FIND와 동일하게 위치(숫자) 반환
  • 구문: =SEARCH(찾을_문자, 대상_텍스트, [시작위치])
  • 특징
    • ‘A’와 ‘a’를 같게 취급 (느슨 매칭)
    • 와일드카드 지원
      • * : 임의 길이(0자 이상)
      • ? : 임의 1글자
      • ~ : 와일드카드를 문자 그대로 찾을 때 사용 (예: ~*, ~?)
    • 못 찾으면 #VALUE!

 

비교 한 줄 요약

  • 정확·엄격하게 찾을 때 → FIND
  • 느슨·패턴으로 찾을 때 → SEARCH

 

 

 

 


4. 추출 3대 패턴(앞·뒤·사이)과 템플릿

 목표 사고 순서 전형적 공식
구분자 앞 구분자 위치 = p → 왼쪽 p-1 =LEFT(A1, FIND("-",A1)-1)
구분자 뒤 전체길이-L, 시작은 p+1 =RIGHT(A1, LEN(A1)-FIND("-",A1))
구분자 사이 앞 p1, 뒤 p2 → 길이 = p2-p1-1 =MID(A1, p1+1, p2-p1-1)

 

주석

  • LEN: 문자열 길이
  • 엑셀 위치는 1부터 시작

 

 

 

 


5. 실무 20개 예제 (FIND/SEARCH + LEFT/RIGHT/MID)

 

표는 간단히, 각 예제 아래에 상세 설명/변형 팁을 덧붙입니다.
기본 가정: 데이터는 A1 셀.

 

 

① 이메일 사용자명(아이디) 추출

  • 예: test.user@naver.com → test.user
  • 공식: =LEFT(A1, FIND("@",A1)-1)
  • 팁: SEARCH("@",A1)로도 무방(대소문자 무관)

 

 

② 이메일 도메인 추출

  • 예: test.user@naver.com → naver.com
  • 공식: =RIGHT(A1, LEN(A1)-FIND("@",A1))
  • 확장: 도메인의 최상위(TLD)만 빼고 2단계만 남기고 싶다면 ⑮ 예제 참조

 

 

③ 괄호 안 텍스트 추출

  • 예: 홍길동(영업팀) → 영업팀
  • 공식:
    =MID(A1, FIND("(",A1)+1, FIND(")",A1)-FIND("(",A1)-1)
  • 예외: 괄호가 없을 수도 → IFERROR 감싸기 필수

 

 

④ 첫 공백 앞(성/앞부분) 추출

  • 예: Kim Hana → Kim
  • 공식: =LEFT(A1, FIND(" ",A1&" ")-1)
  • 포인트: 공백이 없어도 안전(문자열 끝에 공백을 임시 추가)

 

 

⑤ 첫 공백 뒤(이름/뒷부분) 추출

  • 예: Kim Hana → Hana
  • 공식: =MID(A1, FIND(" ",A1)+1, LEN(A1))

 

 

⑥ 전화번호 앞/뒤

  • 예: 010-1234-5678
    • 앞(국번): =LEFT(A1, FIND("-",A1)-1) → 010
    • 뒤(나머지): =RIGHT(A1, LEN(A1)-FIND("-",A1)) → 1234-5678

 

 

⑦ 두 번째 하이픈 사이(전화 중간자리)

  • 예: 010-1234-5678 → 1234
  • 절차:
    • p1 = FIND("-",A1)
    • p2 = FIND("-",A1, p1+1)
    • 중간: =MID(A1, p1+1, p2-p1-1)

 

 

⑧ 제품코드 마지막 블록(마지막 구분자 기준)

  • 예: ABC-123-XY-999 → 999
  • 마지막 ‘-’ 위치:
    =FIND("@", SUBSTITUTE(A1,"-","@", LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))
  • 끝 블록: =RIGHT(A1, LEN(A1)-위치)
  • 응용: 마지막 전 블록, 세 번째 블록… 모두 같은 트릭으로 확장

 

 

⑨ 파일 확장자(마지막 점 기준)

  • 예: report.final.v3.xlsx → xlsx
  • 마지막 ‘.’ 위치:
    =FIND("@", SUBSTITUTE(A1,".","@", LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))
  • 확장자: =RIGHT(A1, LEN(A1)-위치)

 

 

⑩ ISO 날짜(YYYY-MM-DD)에서 연/월/일

  • 예: 2025-09-26 → 연/월/일 각각
  • 공식:
    • 연: =LEFT(A1,4)
    • 월: =MID(A1,6,2)
    • 일: =RIGHT(A1,2)
  • 포인트: 형식 고정이면 FIND/SEARCH보다 고정 길이가 빠름

 

 

⑪ 금액에서 기호 제거 후 숫자화

  • 예: ₩1,234,500원 → 1234500(숫자)
  • 공식(정리 → 숫자화):
    =VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"₩",""),",",""),"원",""))
  • 변형: FIND("원",A1)로 “원” 위치를 잡아 앞부분만 잘라오는 흐름도 가능

 

 

⑫ 첫 숫자 시작 위치 찾아 뒤쪽 추출

  • 예: ABC123XYZ → 123XYZ
  • 동적배열(365) 공식:
    =MID(A1, MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),1E+9)), 99)
  • 구버전: 배열수식(Ctrl+Shift+Enter) 필요
  • 포인트: 여러 FIND 중 최소값 = 첫 숫자 위치

 

 

⑬ 콤마로 구분된 n번째 항목

  • 예: a,b,c,d,e 에서 3번째 → c
  • 권장 공식(고정폭 트릭):
    =TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)), (n-1)*99+1, 99))
  • 설명: FIND 없이도 해결되지만, “구분자 위치로 자른다” 사고가 같음

 

 

⑭ 키워드 뒤 고정 길이 추출

  • 예: Order#ABCD-2025 → ABCD
  • 공식:
    =MID(A1, FIND("Order#",A1)+LEN("Order#"), 4)

 

 

⑮ 도메인 2단계만 남기기

  • 예: img.cdn.site.co.kr → co.kr
  • 아이디어: “마지막 점”과 “마지막에서 두 번째 점”을 찾아 오른쪽 부분 추출
  • 구현: ⑨의 “마지막 점” 공식을 한 번 더 부분 문자열에 적용

 

 

⑯ 주소에서 ‘구’까지 자르기

  • 예: 부산광역시 수영구 광안동 123-4 → 부산광역시 수영구
  • 공식:
    • p = FIND("구 ",A1)
    • =LEFT(A1, p+1) (‘구’ 포함하도록 +1)

 

 

⑰ 제품명/규격 분리(괄호형)

  • 예: 고무장갑(대) → 제품: 고무장갑, 규격: 대
  • 제품: =LEFT(A1, FIND("(",A1)-1)
  • 규격: ③의 괄호 안 공식 사용

 

 

⑱ 경로에서 파일명만(마지막 \ 뒤)

  • 예: C:\Data\2025\report.xlsx → report.xlsx
  • 마지막 ‘\’ 위치:
    =FIND("@", SUBSTITUTE(A1,"\","@", LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))
  • 파일명: =RIGHT(A1, LEN(A1)-위치)

 

 

⑲ 해시태그 첫 개만

  • 예: #엑셀 #실무 #팁 → #엑셀
  • 공식:
    • p = FIND(" ", A1&" ")
    • =LEFT(A1, p-1)

 

 

⑳ SEARCH 와일드카드로 패턴 위치 잡기

  • 예: INV-2025-0007에서 중간 4자리 연도 블록의 시작 위치
  • 공식(패턴 탐색): =SEARCH("INV-????-0007", A1)
  • 변형: 중간 자릿수가 가변이면 * 사용: =SEARCH("INV-*-0007", A1)
  • 주의: 와일드카드는 SEARCH만 가능, FIND는 불가
  • 이 위치를 기준으로 MID 길이 조합 → 다양한 패턴 추출 완성

 

주석

  • 와일드카드: *(임의 길이), ?(한 글자), 문자 그대로 찾고 싶으면 ~*, ~?처럼 틸드(~) 사용

 

 

 

 


6. 에러·공백·특수문자·와일드카드 완전정복 팁

  1. 에러 방지: 못 찾으면 #VALUE!
    • =IFERROR(FIND("-",A1),0) 처럼 IFERROR로 감싸 안전처리
  2. 공백 정리:
    • TRIM은 연속 공백을 1개로(단, NBSP(CHAR(160))는 제외)
    • NBSP가 섞였을 땐 =TRIM(SUBSTITUTE(A1,CHAR(160)," "))
    • 제어문자 제거: CLEAN
  3. 마지막/두 번째 구분자:
    • SUBSTITUTE로 마지막만 임시기호로 바꾼 뒤 FIND
    • N번째는 SUBSTITUTE의 인스턴스 번호 응용
  4. SEARCH 와일드카드:
    • *(길이 가변)·?(정확히 한 글자)
    • 문자 그대로 별표/물음표를 찾을 땐 ~*, ~?
  5. 버전 차이:
    • 365 동적배열은 그냥 엔터
    • 구버전 일부 공식은 배열수식(Ctrl+Shift+Enter) 필요
  6. 한글 처리:
    • 일반 한글은 1글자=1길이로 안전
    • 외부(웹/ERP) 텍스트에서만 간혹 특수 공백·제어문자 주의

 

용어 주석

  • NBSP(Non-Breaking Space): 줄바꿈 방지 공백(코드 160)
  • 배열수식: 여러 값(배열)을 한 번에 계산하는 구식 입력 방식

 

 

 

 


7. 요약 정리

구분 FIND SEARCH
대소문자 구분함 구분 안 함
와일드카드 미지원 지원(*, ?, ~)
전형적 용도 정확 매칭·정돈된 포맷 패턴 매칭·대소문자 섞인 데이터
공통 위치(숫자) 반환 → LEFT/RIGHT/MID로 추출 동일

3대 추출 템플릿

  • 앞: =LEFT(A1, FIND("-",A1)-1)
  • 뒤: =RIGHT(A1, LEN(A1)-FIND("-",A1))
  • 사이: =MID(A1, p1+1, p2-p1-1)

 

 


8. FQA

Q1. FIND/SEARCH 중 뭘 먼저 익혀야 하나요?
A. SEARCH부터. 대소문자 무시 + 와일드카드로 실무 적용 폭이 넓습니다. 이후 “정확 매칭” 필요할 때 FIND를 선택.

Q2. 마지막 구분자 기준으로 자르는 공식을 외워야 하나요?
A. 원리만 기억: “SUBSTITUTE로 마지막만 치환 → 그 기호 위치를 FIND”. 점/하이픈/역슬래시 모두 같은 패턴.

Q3. 찾는 문자가 없을 때 파일 전체가 에러예요.
A. 항상 IFERROR로 감싸 기본값(0, 빈 문자열 등)을 지정하세요.
예: =IFERROR(LEFT(A1,FIND("-",A1)-1), A1)

Q4. 와일드카드를 문자 그 자체로 찾고 싶어요.
A. ~를 앞에 붙여요. 예: SEARCH("file~?.txt", A1)

Q5. 공백을 없앴는데도 FIND가 실패합니다.
A. NBSP(CHAR(160))일 수 있어요. SUBSTITUTE(A1,CHAR(160)," ") 후 TRIM.

Q6. 숫자·날짜로 계산이 안 됩니다.
A. 텍스트일 확률 큽니다. VALUE/DATEVALUE/TIMEVALUE형 변환.

Q7. 여러 조건으로 ‘혹은(OR)’ 검색은?
A. MIN(IFERROR(FIND({조건1,조건2,...},A1),1E+9))처럼 배열로 최소값을 뽑는 방법이 실전에서 강력합니다(365 권장).

Q8. 파일 확장자 없는 케이스는요?
A. 마지막 점을 못 찾으니 #VALUE!. IFERROR로 원문 반환 등 예외처리 필요.

Q9. 숫자 위치를 찾아야 할 때 정규식이 있으면 쉬울 텐데요?
A. 엑셀 기본은 정규식을 직접 지원하지 않습니다. 대신 SEARCH 와일드카드배열 FIND 트릭으로 대체합니다.

Q10. LEFT/RIGHT/MID 대신 TEXTSPLIT/TAKE가 편한데요?
A. 365 함수군은 더 편합니다. 다만 호환성(사내 구버전) 고려해 본문 공식도 익혀두세요.

 

 


9. 결론

  • 문자열 가공의 본질은 **“위치 → 추출”**입니다.
  • 정확 매칭은 FIND, 패턴/대소문자 무시는 SEARCH.
  • 마지막/두 번째 등 난도 높은 요구는 SUBSTITUTE 트릭으로 해결.
  • IFERROR + TRIM/CLEAN/SUBSTITUTE로 예외를 봉합하면, 외부 데이터도 튼튼히 다뤄집니다.

이 글의 20개 예제를 여러분 파일의 A열에 붙여넣고 바로 시험해보세요. 세 번만 반복하면 손이 먼저 움직입니다.

300x250