TEXTSPLIT · TEXTBEFORE · TEXTAFTER로 텍스트 분리/추출 끝! (정규식 없이 1분 컷)

엑셀 TEXTSPLIT·TEXTBEFORE·TEXTAFTER로 문자열을 깔끔하게 분리/추출하세요. 여러 구분자, 빈값 처리, 마지막 구분자, N번째 항목, 행/열 변환, 구버전 대체식까지 실무 예제 총정리.
TEXTSPLIT · TEXTBEFORE · TEXTAFTER로 텍스트 분리/추출 끝! (정규식 없이 1분 컷)

TEXTSPLIT · TEXTBEFORE · TEXTAFTER로 텍스트 분리/추출 끝! (정규식 없이 1분 컷)

CSV, 파일 경로, 제품코드, 이메일… 이 3형제면 정규식 없이도 깔끔 분리/추출이 가능합니다. 자주 쓰는 패턴을 모아 바로 복붙할 수 있게 정리했어요.

핵심 개념 & 문법

함수형식설명
TEXTSPLIT=TEXTSPLIT(text, col_delim, [row_delim], [ignore_empty], [match_mode], [pad_with])문자열을 배열로 분리
TEXTBEFORE=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])구분자 이전 텍스트
TEXTAFTER=TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])구분자 이후 텍스트

TEXTSPLIT 베이직: 구분자 분리

예제 1) 하이픈(-)으로 열에 분리

=TEXTSPLIT(A2,"-")

예제 2) 쉼표(,) 연속 공백 포함 CSV

=TEXTSPLIT(A2,", ")   // ", "를 하나의 구분자로 인식

예제 3) 줄바꿈(행) 기준 세로 분리

=TEXTSPLIT(A2,,CHAR(10))   // col_delim 생략, row_delim=줄바꿈

연속 구분자·대소문자·여러 구분자

예제 4) 연속 구분자 빈값 무시

=TEXTSPLIT(A2,",",,TRUE)

예제 5) 여러 구분자 동시 인식

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

예제 6) 대소문자 무시(match_mode=1)

=TEXTSPLIT(A2,"abc",,FALSE,1)

TEXTBEFORE/AFTER: N번째·마지막

예제 7) 이메일 도메인 (첫 번째 ‘@’ 뒤)

=TEXTAFTER(A2,"@")

예제 8) 파일 확장자 (마지막 ‘.’ 뒤)

=TEXTAFTER(A2,".",-1)

예제 9) 경로의 상위 폴더 (마지막 ‘\’ 앞)

=TEXTBEFORE(A2,"\\",-1)

예제 10) N번째 하이픈 앞/뒤

=TEXTBEFORE(A2,"-",N)
=TEXTAFTER(A2,"-",N)
  • if_not_found로 기본값 제공 가능. 간단히는 IFERROR(TEXTAFTER(...),"없음").
  • match_end=1이면 문자열 끝도 구분자로 간주합니다.

행/열 변환 & N번째 토큰 추출

예제 11) 가로 분리 결과를 세로로

=TRANSPOSE(TEXTSPLIT(A2,"-"))

예제 12) N번째 토큰만 뽑기

=INDEX(TEXTSPLIT(A2,"-"), N)

예제 13) 최대 3개씩 행으로 감싸기

=WRAPROWS(TEXTSPLIT(A2,", "), 3, "")

구버전 대체식(전통 공식)

TEXT 함수들이 없는 환경(구버전)에서는 아래 패턴을 사용하세요.

예제 14) 마지막 구분자 뒤

=RIGHT(A2, LEN(A2)-FIND("|", SUBSTITUTE(A2,"-","|", LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))

예제 15) 두 구분자 사이(중간 코드)

=MID(A2, FIND("-",A2)+1, FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)

예제 16) 텍스트 나누기(리본)

데이터 → 텍스트 나누기로 일회성 분리, 또는 Power Query열 분할 기능 사용.

실수·예외·성능 체크리스트

  • 연속 구분자 빈셀 발생ignore_empty=TRUE.
  • 대소문자 민감match_mode=1 또는 대소문자 통일(UPPER/LOWER).
  • 가변 길이 행pad_with로 공백 채우기, 또는 WRAPROWS·WRAPCOLS로 그리드화.
  • 범위 일괄 처리 → BYROW/MAP로 TEXTSPLIT을 행 단위 적용.
  • 성능 → 동일 계산은 LET으로 캐싱, 전체열(X:X) 참조 지양.

요약 정리

목표대표 공식
전체 분리TEXTSPLIT(A2,"-")
N번째 앞/뒤TEXTBEFORE/AFTER(A2,"-",N)
마지막 기준TEXTBEFORE/AFTER(A2,"-", -1)
연속 구분자 무시TEXTSPLIT(A2,",",,TRUE)

FAQ

여러 줄 텍스트를 행으로 자르려면?

=TEXTSPLIT(A2,,CHAR(10)) 또는 =TRANSPOSE(TEXTSPLIT(A2,"-"))처럼 TRANSPOSE를 활용하세요.

빈값/누락은 어떻게 처리하나요?

IFERROR(TEXTAFTER(...),"없음") 또는 TEXTSPLIT의 pad_with로 기본 채움값을 지정합니다.

지금 다루는 “코드-이름-버전”처럼 하이픈이 들어간 데이터를 넣고 TEXTSPLIT → INDEX만 적용해 보세요. 규칙이 복잡해도 3형제면 순식간입니다.

Leave a Reply

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