엑셀 FIND 함수 완벽 가이드: N번째·구간 추출·SEARCH 비교

엑셀 FIND 함수

엑셀 FIND 함수: 기본부터 N번째·구간 추출까지 한 번에 끝내는 실무 가이드

엑셀 FIND 함수는 텍스트에서 특정 문자열의 시작 위치를 찾아줍니다. 이 글에서는 기본 문법부터 앞/뒤/사이 추출, N번째 구분자 처리, 오류 예외한글·특수공백 대응, 365의 TEXTAFTER/TEXTBEFORE 대안까지 실무에서 바로 쓰는 패턴을 단계별로 정리합니다.

빠른 해결(Quick Fix)

1) 기본 문법과 필수 패턴

  • 문법: =FIND(find_text, within_text, [start_num])대소문자 구분, 와일드카드 미지원.
  • 기본 위치 찾기: =FIND("@", A2) → A2에서 "@"의 시작 위치.
  • 구분자 앞(왼쪽) 추출: =LEFT(A2, FIND("@",A2)-1)
  • 구분자 뒤(오른쪽) 추출: =MID(A2, FIND("@",A2)+1, LEN(A2))
  • 두 기호 사이 추출(예: [ ] 안):
    =MID(A2, FIND("[",A2)+1, FIND("]",A2)-FIND("[",A2)-1)

2) N번째 구분자 위치/추출

마지막 점/하이픈처럼 N번째 구분자를 찾을 때는 SUBSTITUTE를 이용합니다.

  • N번째 구분자 위치:
    =FIND("#", SUBSTITUTE(A2, "-", "#", N))
  • N번째 구분자 전체:
    =MID(A2, FIND("#",SUBSTITUTE(A2,"-","#",N))+1, LEN(A2))
  • N번째와 N+1번째 사이:
    =MID(A2, FIND("#",SUBSTITUTE(A2,"-","#",N))+1, FIND("#",SUBSTITUTE(A2,"-","#",N+1)) - FIND("#",SUBSTITUTE(A2,"-","#",N)) - 1)

365라면 더 간단하게: =TEXTAFTER(A2, "-", N), =TEXTBEFORE(A2, "-", N).

3) 오류·예외 처리

  • 찾지 못함: FIND#VALUE!를 반환 → =IFERROR(수식,"") 또는 "미존재" 등으로 처리.
  • 시작 위치: start_num이 1보다 작거나 문자열 길이를 넘으면 #VALUE!.
  • 특수공백/숨은 문자: TRIM, CLEAN, SUBSTITUTE(,CHAR(160)," ")로 정리 후 FIND.

왜 이런 문제가 생기나(개념·원리)

FIND vs SEARCH

  • FIND: 대소문자 구분, 와일드카드 없음. 정확한 패턴 검색에 적합.
  • SEARCH: 대소문자 무시, 와일드카드 ? * 지원. 느슨한 검색/패턴 매칭에 유리.
  • 대소문자를 무시하고 싶다면 SEARCH 또는 FIND(UPPER(find), UPPER(within))처럼 대문자화 트릭을 사용합니다.

시작 위치와 길이 계산

추출은 결국 시작점길이의 문제입니다. 시작점은 FIND/SEARCH, 길이는 다음 경계 - 시작 - 1 또는 LEN(text) - 시작으로 계산합니다.

특수공백/숨은 문자 대응

웹/ERP 복사 데이터에는 비분리공백(CHAR(160)), 탭(9), 줄바꿈(10/13) 등이 섞일 수 있습니다. 다음처럼 정규화 후 FIND를 적용하면 안정적입니다.

=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," ")))

실무 예제

샘플 데이터

A(원문)의도
2kim@exceljump.com아이디/도메인 분리
3Report_v2.1_final.xlsx확장자/버전 추출
4[KR] 2025-11-15 / CENTER-02대괄호·슬래시 기준 파싱
5P1001-SEOUL-XLSKU 세부값 분해
6Tel: 010 1234 5678숫자 구간 추출

1) 이메일: 아이디/도메인

  • 아이디: =LEFT(A2, FIND("@",A2)-1)kim
  • 도메인: =MID(A2, FIND("@",A2)+1, LEN(A2))exceljump.com
  • TLD: =RIGHT(A2, LEN(A2)-FIND(".", A2, FIND("@",A2)))com

2) 파일명: 마지막 점 기준 확장자

마지막 점의 위치를 잡으려면 SUBSTITUTE 트릭을 사용합니다.

=RIGHT(A3, LEN(A3) - FIND("#", SUBSTITUTE(A3, ".", "#", LEN(A3)-LEN(SUBSTITUTE(A3,".","")))))

365라면 =TEXTAFTER(A3,".",-1)로 더 간단합니다.

3) 한 쌍의 기호 사이(대괄호·슬래시)

  • 국가코드(대괄호): =MID(A4, FIND("[",A4)+1, FIND("]",A4)-FIND("[",A4)-1)KR
  • 센터 코드(슬래시 뒤 공백 포함): =MID(A4, FIND("/",A4)+2, LEN(A4))CENTER-02

4) SKU 세부값 분해(N번째 하이픈)

A5 = P1001-SEOUL-XL

  • 상품코드(첫 하이픈 앞): =LEFT(A5, FIND("-",A5)-1)P1001
  • 도시(1~2번째 하이픈 사이):
    =MID(A5, FIND("-",A5)+1, FIND("#",SUBSTITUTE(A5,"-","#",2)) - FIND("-",A5) - 1)SEOUL
  • 사이즈(두 번째 하이픈 뒤):
    =MID(A5, FIND("#",SUBSTITUTE(A5,"-","#",2))+1, LEN(A5))XL

365라면: =TEXTBEFORE(A5,"-"), =TEXTAFTER(TEXTBEFORE(A5,"-",2),"-"), =TEXTAFTER(A5,"-",2).

5) 숫자 구간 추출(문자·숫자 혼재)

A6 = Tel: 010 1234 5678

  • 첫 숫자 시작 위치: =MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9}&"", A6), "")) (배열 수식)
  • 전화번호만: =TEXTJOIN("",,IFERROR(MID(A6,SEQUENCE(LEN(A6)),1)*1,""))01012345678

6) 다중 구분자 처리(TEXTSPLIT)

콤마/세미콜론/공백 등 다양한 구분자가 섞이면:

=TEXTSPLIT(A2, {",",";"," "})

분해 후 INDEX/TAKE/DROP으로 원하는 조각만 취하거나, TEXTJOIN으로 재결합합니다.

7) 표(Structured Reference)·동적배열

범위를 표(Ctrl+T)로 만들어 tblEmail이라 가정, 열 [Email]에서 아이디만:

=LEFT(tblEmail[Email], FIND("@", tblEmail[Email]) - 1)

데이터가 늘어도 자동 확장되며, 365에서는 결과가 스필되어 열 단위 처리에 유리합니다.

8) LET로 가독성/속도 개선

=LET(
  s, A5,
  p1, FIND("-", s),
  p2, FIND("#", SUBSTITUTE(s,"-","#",2)),
  code, LEFT(s, p1-1),
  city, MID(s, p1+1, p2-p1-1),
  size, MID(s, p2+1, LEN(s)),
  code & " | " & city & " | " & size
)

대체 방법/주의/체크리스트

  • 대소문자 무시·와일드카드 필요SEARCH 또는 TEXTAFTER/TEXTBEFORE(365).
  • 마지막/N번째 구분자 ⇒ SUBSTITUTE 트릭 또는 TEXTAFTER(...,-1).
  • 오류 안전성IFERROR로 #VALUE!를 공백/안내문으로 처리.
  • 특수공백TRIM/CLEAN/SUBSTITUTE(,CHAR(160)," ") 선처리.
  • 로 전환하면 유지보수·확장성 상승, LET로 중복계산 최소화.

Troubleshooting

증상원인해결법
#VALUE! 오류 찾는 문자열 부재, start_num 범위 오류 IFERROR로 처리, start_num=1로 리셋, 전처리(TRIM/CLEAN)
대소문자 때문에 못 찾음 FIND는 대소문자 구분 SEARCH 사용 또는 UPPER/LOWER로 정규화
마지막/두 번째 구분자 계산 어려움 FIND는 첫 일치만 반환 SUBSTITUTE 트릭 또는 TEXTAFTER/TEXTBEFORE
한글/공백에서 위치가 어긋남 비분리공백/숨은 문자 SUBSTITUTE(,CHAR(160),” “) 후 TRIM/CLEAN
복잡한 중첩으로 가독성 저하 중복 FIND/LEN 계산 LET 변수화, 구조화참조 활용

마무리: 관련 글 추천

보고서 형식이 자주 바뀐다면 엑셀 FIND 함수 패턴을 템플릿으로 저장해 반복 업무 시간을 줄여 보세요.

Leave a Reply

Your email address will not be published. Required fields are marked *