
엑셀 TEXTSPLIT 완벽 가이드: WRAPROWS·VSTACK으로 로그 파싱 자동화
엑셀 TEXTSPLIT과 동적 배열을 활용하면 복잡한 로그 문자열을 5분 만에 표로 변환할 수 있습니다. 아래 샘플을 그대로 복붙하면 동일 결과를 재현할 수 있어요.
빠른 해결(Quick Fix): 5분 만에 로그 → 표
- 로그를 Ctrl+T로 테이블화(Logs).
- 파이프
|기준 분해:TEXTSPLIT. - KEY=VALUE 추출:
TEXTBEFORE/TEXTAFTER. WRAPROWS로 열 수 고정,VSTACK으로 누적.
왜 TEXTSPLIT인가?
- 동적 배열로 수식 한 번에 다수 셀 출력
- 다중 구분자 지원, 행/열 분할 선택
- 수식 기반이라 자동 갱신·검증 용이
실무 예제: 로그 파싱 자동화
샘플 로그
2025-08-30T12:45:30Z | INFO | user_id=U1920 ip=192.168.0.12 path=/cart?sku=123&qty=2
2025-08-30T12:47:10Z | WARN | user_id=U2881 ip=10.0.0.7 path=/checkout?fail=1
2025-08-30T13:02:51Z | INFO | user_id=U1920 ip=192.168.0.12 path=/pay?method=card
2025-08-30T13:10:05Z | ERROR | user_id= ip=203.0.113.55 path=/pay?method=card&retry=1
2025-08-30T13:22:11Z | INFO | user_id=U3002 ip= path=/search?q=shirts
Step1 파이프 기준 1차 분해
=LET(
src, Logs[Log],
TEXTSPLIT(src, " | ",, TRUE)
)
Step2 KEY=VALUE 추출
=LET(
arr, TEXTSPLIT(Logs[Log], " | ",, TRUE),
ts, TAKE(arr,,1),
lvl, TAKE(arr,,1,2),
pay, TAKE(arr,,1,3),
uid, TEXTAFTER(TEXTBEFORE(pay," ip="),"user_id="),
ip, TEXTAFTER(TEXTBEFORE(pay," path="),"ip="),
pth, TEXTAFTER(pay,"path="),
HSTACK(ts,lvl,uid,ip,pth)
)
Step3 WRAPROWS + VSTACK
=LET(
arr, TEXTSPLIT(Logs[Log], " | ",, TRUE),
ts, TAKE(arr,,1),
lvl, TAKE(arr,,1,2),
pay, TAKE(arr,,1,3),
uid, TEXTAFTER(TEXTBEFORE(pay," ip="),"user_id="),
ip, TEXTAFTER(TEXTBEFORE(pay," path="),"ip="),
pth, TEXTAFTER(pay,"path="),
tbl, HSTACK(ts,lvl,uid,ip,pth),
WRAPROWS(tbl, COLUMNS(tbl), "")
)
Step4 LAMBDA로 재사용
=LAMBDA(rng,
LET(
arr, TEXTSPLIT(rng, " | ",, TRUE),
ts, TAKE(arr,,1),
lvl, TAKE(arr,,1,2),
pay, TAKE(arr,,1,3),
uid, TEXTAFTER(TEXTBEFORE(pay," ip="),"user_id="),
ip, TEXTAFTER(TEXTBEFORE(pay," path="),"ip="),
pth, TEXTAFTER(pay,"path="),
tbl, HSTACK(ts,lvl,uid,ip,pth),
WRAPROWS(tbl, COLUMNS(tbl), "")
)
)
대체 방법·주의사항·체크리스트
- 대용량·복잡 파이프라인은 Power Query, 시트 내 즉시 가공은 TEXTSPLIT 권장
- TRIM/CLEAN/SUBSTITUTE로 특수 공백 제거
- 줄바꿈은
row_delimiter:=CHAR(10)로 처리
Troubleshooting
| 증상 | 원인 | 해결 |
|---|---|---|
| 열 밀림 | 누락 값 | WRAPROWS로 패딩 지정 |
| #CALC! 스필 | 결과가 기존 데이터와 충돌 | 빈 공간으로 이동/충돌 셀 비우기 |
| 공백 안 지워짐 | 비분리 공백(160) | SUBSTITUTE(CHAR(160),” “) + TRIM |
| 다중 구분자 필요 | 선택 구분자 부족 | 배열 구분자 사용 {“|”,”;”,” “} |
맺음말
엑셀 TEXTSPLIT은 로그 파싱·전처리를 자동화하는 가장 빠른 시작점입니다. 다음 글에서는 TEXTSPLIT과 REGEX를 결합한 하이브리드 추출 기법을 다룹니다.