엑셀 TEXTSPLIT 완벽 가이드: WRAPROWS·VSTACK으로 로그 파싱 자동화

엑셀 TEXTSPLIT 완벽 가이드: WRAPROWS·VSTACK으로 로그 파싱 자동화

엑셀 TEXTSPLIT과 동적 배열을 활용하면 복잡한 로그 문자열을 5분 만에 표로 변환할 수 있습니다. 아래 샘플을 그대로 복붙하면 동일 결과를 재현할 수 있어요.

빠른 해결(Quick Fix): 5분 만에 로그 → 표

  1. 로그를 Ctrl+T로 테이블화(Logs).
  2. 파이프 | 기준 분해: TEXTSPLIT.
  3. KEY=VALUE 추출: TEXTBEFORE/TEXTAFTER.
  4. 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를 결합한 하이브리드 추출 기법을 다룹니다.

Leave a Reply

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