
엑셀 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(원문) | 의도 |
|---|---|---|
| 2 | kim@exceljump.com | 아이디/도메인 분리 |
| 3 | Report_v2.1_final.xlsx | 확장자/버전 추출 |
| 4 | [KR] 2025-11-15 / CENTER-02 | 대괄호·슬래시 기준 파싱 |
| 5 | P1001-SEOUL-XL | SKU 세부값 분해 |
| 6 | Tel: 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 함수 패턴을 템플릿으로 저장해 반복 업무 시간을 줄여 보세요.