엑셀에서 "서울시 강남구 123-456"에서 우편번호만 뽑고 싶을 때가 있습니다. 수작업은 너무 오래 걸립니다. 정규식으로 특정 패턴을 추출하는 방법을 알아보겠습니다.
정규식이란?
텍스트에서 특정 패턴을 찾는 규칙입니다. "숫자 3개-숫자 3개" 형태를 찾고 싶다면 d{3}-d{3} 같은 패턴을 사용합니다.
엑셀 기본 함수의 한계
LEFT, RIGHT, MID 함수로도 추출은 가능하지만, 위치가 일정해야 합니다. 텍스트 길이가 다르거나 위치가 바뀌면 함수를 다시 짜야 합니다.
정규식 패턴 연습
엑셀에서 바로 정규식을 쓰기 전에 정규식 테스터에서 패턴이 맞는지 먼저 확인하세요. 샘플 데이터를 넣고 원하는 부분이 매칭되는지 테스트합니다.
자주 쓰는 패턴
| 목적 | 패턴 |
|---|---|
| 전화번호 | d{2,3}-d{3,4}-d{4} |
| 이메일 | [w.-]+@[w.-]+ |
| 우편번호(5자리) | d{5} |
| 금액 | [d,]+원 |
엑셀에서 정규식 사용하기
엑셀 기본 기능에는 정규식이 없습니다. VBA 매크로를 작성하거나, 파워쿼리를 활용해야 합니다. 간단한 작업은 온라인 정규표현식 도구에서 처리하고 결과를 복사하는 게 빠를 수 있습니다.
VBA 정규식 코드
Function ExtractPattern(text, pattern)
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = pattern
If regex.Test(text) Then
ExtractPattern = regex.Execute(text)(0)
End If
End Function
구글 스프레드시트
구글 시트에는 REGEXEXTRACT, REGEXMATCH 함수가 있습니다. =REGEXEXTRACT(A1, "d{3}-d{4}")처럼 바로 사용 가능합니다.
대량 데이터 처리
수천 개 이상의 데이터를 처리할 때는 Python이나 R을 쓰는 게 효율적입니다. 먼저 정규식 검증 도구로 패턴을 완성하고, 코드에 적용하세요.