
LEN · FIND · SEARCH로 문자열 분석 끝! (위치·개수·N번째 추출 1분 컷)
SKU에서 코드 뽑기, 이메일에서 도메인 분리, 키워드 위치·횟수·N번째 찾기… LEN/FIND/SEARCH로 정확하고 가볍게 처리하세요.
문법 & 차이
| 함수 | 형식 | 포인트 |
|---|---|---|
| LEN | =LEN(text) | 문자 수(공백 포함) |
| FIND | =FIND(find_text, within_text, [start_num]) | 대소문자 구분, 와일드카드 X |
| SEARCH | =SEARCH(find_text, within_text, [start_num]) | 대소문자 구분 없음, 와일드카드 * ? 지원 |
반환값: 위치(1부터). 못 찾으면 #VALUE!. 시작 위치 옮길 때는 start_num 사용.
위치 찾기 (처음/마지막/N번째)
처음 위치(대소문자 무시)
=SEARCH("@" , A2)
마지막 위치(뒤에서부터 찾기)
=FIND("§", SUBSTITUTE(A2, "/", "§", LEN(A2)-LEN(SUBSTITUTE(A2,"/",""))))
N번째 등장 위치
=FIND("§", SUBSTITUTE(A2, "키워드", "§", N))
키워드가 존재하지 않으면 #VALUE! → IFERROR로 처리.
앞·뒤·가운데 추출
앞부분(구분자 이전)
=LEFT(A2, FIND("-", A2)-1)
뒷부분(구분자 이후)
=RIGHT(A2, LEN(A2)-FIND("-", A2))
사이 문자열(MID)
=MID(A2, FIND("[",A2)+1, FIND("]",A2)-FIND("[",A2)-1)
365 이면 더 간단하게: TEXTBEFORE, TEXTAFTER, TEXTSPLIT 사용.
등장 횟수 세기
단일 키워드 횟수
=LEN(A2)-LEN(SUBSTITUTE(A2, "키워드", ""))
대소문자 구분 횟수(응용)
=SUM(--ISNUMBER(FIND("Pro", MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 3))))
긴 텍스트는 365의 SCAN/MAP 또는 파워쿼리가 효율적입니다.
실무 패턴 8가지
① 이메일에서 도메인
=RIGHT(A2, LEN(A2)-FIND("@",A2))
② 파일 경로에서 파일명(마지막 \ 이후)
=RIGHT(A2, LEN(A2)-FIND("§",SUBSTITUTE(A2,"\","§",LEN(A2)-LEN(SUBSTITUTE(A2,"\","")))))
③ SKU-123-456에서 가운데 블록
=MID(A2, FIND("-",A2)+1, FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)
④ N번째 단어(구분자 공백)
=TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",99)), (N-1)*99+1, 99))
⑤ 키워드가 있으면 TRUE (대소문자 구분)
=ISNUMBER(FIND("Pro", A2))
⑥ 와일드카드 패턴 매칭(대소문자 무시)
=ISNUMBER(SEARCH("A??-2025*", A2))
⑦ 접두사 길이로 코드 분리
=RIGHT(A2, LEN(A2)-LEN("PRD-")) // "PRD-" 고정 접두사 제거
⑧ 키워드 기준 왼쪽 N글자/오른쪽 N글자
=LEFT(A2, FIND("KEY",A2)-1)
=RIGHT(A2, LEN(A2)-FIND("KEY",A2)-LEN("KEY")+1)
자주 하는 실수 & 체크리스트
- #VALUE! → 찾는 값이 없을 때.
IFERROR(수식, "")로 무해화. - 멀티바이트 문자 → LEN은 문자 수,
LENB는 바이트 수(한글 2바이트). 파일 시스템 연동 시 주의. - 공백 →
TRIM/CLEAN/SUBSTITUTE(,CHAR(160),)로 숨은 공백 정리 후 비교. - 대소문자 규칙 → 정확 매칭이면 FIND, 느슨한 검색/패턴이면 SEARCH.
- 복잡한 MID 체인 → 365는
TEXTBEFORE/AFTER/SPLIT로 간소화.
요약 정리
| 목표 | 대표 공식 |
|---|---|
| 길이 | LEN(텍스트) |
| 처음/마지막/N번째 위치 | SEARCH/ FIND + SUBSTITUTE |
| 앞/뒤/사이 추출 | LEFT/RIGHT/MID (또는 TEXTBEFORE/AFTER) |
| 등장 횟수 | LEN- LEN(SUBSTITUTE(...)) |
FAQ
여러 키워드 중 먼저 등장한 것을 찾을 수 있나요?
MIN(IFERROR(SEARCH({\"A\",\"B\",\"C\"},A2),1E9))로 가장 작은 위치를 고르고, INDEX로 해당 키를 가져옵니다(배열 수식).
한글·영문 섞인 문자열에서 바이트 길이가 필요하면?
LENB를 사용하세요(시스템/인코딩에 따라 결과가 다를 수 있음).