Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel의 정규식 마스터:고급 사용자 단기집중 과정

Excel의 정규식 마스터:고급 사용자 단기집중 과정

정규식(regex)은 처음에는 복잡해 보일 수 있지만 패턴 일치 및 텍스트 조작을 위한 강력한 도구입니다. Excel에서는 복잡한 패턴을 기반으로 데이터를 검색, 추출 및 바꿀 수 있으므로 데이터 정리, 유효성 검사, 구문 분석과 같은 작업을 훨씬 더 효율적으로 수행할 수 있습니다. 기본 사항을 익히면 정보를 정리하고 검증하고 추출하는 데 드는 시간을 절약할 수 있습니다. 정규식을 지원하기 위해 Excel에서는 REGEXTEST, REGEXEXTRACT 및 REGEXREPLACE와 같은 기능을 제공합니다.

이것은 Excel 고급 사용자를 위한 정규식 집중 강좌입니다.

정규식이란 무엇인가요?

Regex(정규 표현식)는 텍스트의 패턴 언어입니다. 정확한 단어를 검색하거나 일치시키는 대신 정규식을 사용하면 텍스트의 모양을 설명할 수 있습니다. Excel에서 정규식은 하나의 패턴으로 텍스트를 검증, 추출 또는 정리할 수 있는 강력한 FIND + MID + SUBSTITUTE 결합과 같습니다.

정규식을 사용하여 Excel의 일반적인 구조(이메일 주소, 전화번호, 다양한 형식의 날짜 또는 규칙을 따르는 모든 ID)를 일치시킬 수 있습니다.

최신 Excel에서는 주로 다음과 함께 사용합니다.

  • REGEXTEST(패턴이 존재하는지 확인)
  • REGEXEXTRACT(일치하는 부분 가져오기)
  • REGEXREPLACE(일치 항목 바꾸기/정리)

정규식 기본:패턴 작성

정규식 패턴은 찾고 있는 것을 정의하는 문자열입니다. 이는 리터럴 문자(예:"abc")와 특수 메타 문자를 결합합니다. 이 표를 빠른 참조로 사용할 수 있습니다.

주요 메타문자 및 구문:

빌딩 블록 의미 빠른 예제 패턴 일치 abcLiteral textTX-TX-.모든 단일 문자a.cabc, a-c\dDigit (0–9)\d{4}2026\D숫자 아님\D+TX-\wWord 문자(A–Z, a–z, 0–9, _)\w+amina_01\W단어 문자 아님\W+– ( ) .\sWhitespace\s+spaces/tabs\SNot 공백\S+[이메일 보호][ABC]다음 문자 중 하나[AEIOU]A[A-Z]범위(대문자)[A-Z]{2}TX[a-z]범위(소문자)[a-z]+rahman[0-9]숫자 범위[0-9]+1054[^0-9]NOT this(부정 클래스)[^0-9]+TX-*0 또는 more\d*“”, 7, 1054+1 이상\d+7, 1054?선택 사항(0 또는 1)-?– 또는 없음{n}정확히 n회\d{2}12{n,}최소 n회\d{4,}202601{n,m}n과 m 사이\d{2,4}12, 2026^텍스트 시작^TX-TX-1054 (시작 시)$텍스트 끝\.com$은 .com\bWord 경계로 끝납니다\bTX-\d{4}\bTX-1054 전체 토큰( … )캡처 그룹(\d{4})캡처 1054(?:… )비캡처 그룹(?:TX|CA)-\d{4}TX-1054 또는 CA-1054\Escape 특수 charscompany\.comliteral company.com.*모든 문자(탐욕)\(.*\)는 처음부터(마지막까지) 일치합니다.*?모든 문자(탐욕적이지 않음)\(.*?\)는 가장 작은 문자( … )와 일치합니다.(?i)대소문자 구분 모드(Excel 정규식 패턴에서는 지원되지 않습니다. 대신 함수의 대소문자 구분 인수를 사용합니다.) - REGEXTEST(text, Pattern, 1)
    사용
  • 수량자 (*, +, ?, {})는 그 앞의 요소에 적용됩니다.
  • 플래그: Excel의 정규식 함수는 패턴에서 (?i)와 같은 인라인 플래그를 지원하지 않습니다. 대소문자 구분을 위한 함수 인수(예:REGEXTEST의 세 번째 인수)를 사용하거나 문자 클래스(예:[Aa])를 사용하세요.
  • 욕심 많은 사람과 게으른 사람: 기본적으로 수량자는 탐욕적입니다(최대한 많이 일치함). 추가하다 ? 게으르게 만들기 위해 수량자 뒤에 붙입니다(예:.*?).

Excel의 정규식 함수

Excel은 기본적으로 세 가지 정규식 기능을 제공합니다. 이러한 함수는 텍스트 문자열과 정규식 패턴을 입력으로 사용하고 패턴을 기반으로 텍스트의 유효성을 검사하거나 변환합니다. 강좌를 시작하기 전에 각 기능에 대해 알아봅시다.

구문:

=REGEXTEST(text, pattern, [case_sensitivity])

이 함수는 패턴이 제공된 텍스트의 일부와 일치하는지 확인합니다. 패턴이 텍스트의 어느 부분과 일치하면 TRUE를 반환합니다. 그렇지 않으면 거짓입니다.

  • 텍스트: 테스트하려는 텍스트 또는 셀 참조.
  • 패턴: 일치시키려는 텍스트를 설명하는 정규식(regex) 패턴.
  • [대소문자 구분]: 일치 항목이 대소문자를 구분하는지 여부를 결정합니다. 기본적으로 일치 여부는 대소문자를 구분합니다.
    • 0: 대소문자 구분
    • 1: 대소문자를 구분하지 않음

이 함수는 A1에 세 개의 연속 숫자가 포함되어 있으면 TRUE를 반환합니다.

구문:

=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])

이 기능은 일치하는 텍스트를 추출합니다.

  • [반환_모드]: 추출하려는 문자열을 지정하는 숫자입니다. 기본적으로 반환 모드는 0입니다.
    • 0: 패턴과 일치하는 첫 번째 문자열을 반환합니다
    • 1: 패턴과 일치하는 모든 문자열을 배열로 반환
    • 2: 첫 번째 일치 항목의 캡처링 그룹을 배열로 반환
=REGEXEXTRACT(A1, "\d{3}-\d{3}-\d{4}")

'123-456-7890'과 같은 전화번호를 추출합니다.

구문:

=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])

이 기능은 일치하는 항목을 새 텍스트로 바꿉니다.

  • 교체: 패턴 대신 사용할 텍스트입니다. $1, $2 등으로 캡처 그룹을 참조할 수 있습니다.
  • 발생: 바꾸려는 패턴의 인스턴스를 지정합니다. 기본적으로 발생은 0이며 모든 인스턴스를 대체합니다. 음수는 해당 인스턴스를 대체하여 끝부터 검색합니다.
=REGEXREPLACE(A1, "\d{3}", "***")

모든 3자리 시퀀스를 마스킹합니다.

이러한 함수는 배열을 반환하는 경우(예:다중 추출) 유출됩니다.

Excel 고급 사용자를 위한 실제 사례

지저분한 데이터가 있다고 가정해 보겠습니다. 일반적인 시나리오에 정규식을 적용해 보겠습니다.

예 1:이메일 주소 확인

REGEXTEST를 사용하여 유효한 회사 이메일에 플래그를 지정할 수 있습니다(대소문자를 구분하지 않는 일치가 더 안전한 경우가 많습니다).

다음 패턴을 사용하여 이메일을 확인하세요.

  • 패턴: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
=REGEXTEST(A2, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")

잘못된 이메일을 강조하기 위해 조건부 서식 사용:

  • 으로 이동 탭>> 조건부 서식을 선택합니다.>> 새 규칙을 선택합니다.
  • 수식을 사용하여 서식을 지정할 셀 결정을 선택합니다.
  • 다음 수식을 삽입하세요
  • 형식 선택>> 채우기 색상 선택>> 확인 클릭

Excel의 정규식 마스터:고급 사용자 단기집중 과정

  • 잘못된 이메일 주소는 빨간색으로 강조표시됩니다.

Excel의 정규식 마스터:고급 사용자 단기집중 과정

REGEXTEST를 사용하여 유효한 회사 이메일에 플래그를 지정할 수도 있습니다.

=REGEXTEST(B2,"@company\.com$",1)
  • 세 번째 인수(1 ) 대소문자를 구분하지 않으므로 Company.com 여전히 통과
  • \. 점을 벗어납니다. 평범한 . "모든 문자"를 의미합니다

예 2:지저분한 메모에서 데이터 추출

메모에 주문 ID나 전화번호 등의 데이터가 혼합되어 있다고 가정해 보겠습니다. REGEXEXTRACT 함수를 사용하여 전화번호나 주문 ID를 추출할 수 있습니다.

주문 ID 추출:

=REGEXEXTRACT(D2,"TX-\d{4}")
  • 일부 행에 없으면 IFERROR로 래핑하세요.
=IFERROR(REGEXEXTRACT(D2,"TX-\d{4}"),"")

Excel의 정규식 마스터:고급 사용자 단기집중 과정

전화번호 추출:

  • 데이터: “123-456-7890 또는 (987) 654-3210으로 전화주세요.”
  • 패턴: (\d{3}[-. )]+){2}\d{4}
=REGEXEXTRACT(A2, "(\d{3}[-. )]+){2}\d{4}", 0, 1)

이 수식은 텍스트에서 전화번호를 추출합니다.

예 3:숫자가 아닌 숫자를 제거하여 전화번호 표준화

  • 먼저 숫자 전용 버전을 만드세요.
=REGEXREPLACE(C2,"[^\d]","")
  • 이제 형식을 지정할 수 있습니다(예:사용 가능한 경우 마지막 10자리를 미국 번호로 사용).
=LET(x,REGEXREPLACE(C2,"[^\d]",""),
d,RIGHT(x,10),
IF(LEN(d)=10,"("&LEFT(d,3)&") "&MID(d,4,3)&"-"&RIGHT(d,4),""))

이 접근 방식은 숫자가 아닌 문자를 모두 제거하고 결과 전화번호의 형식을 지정합니다.
Excel의 정규식 마스터:고급 사용자 단기집중 과정

예 4:날짜 구문 분석 및 형식 재지정

날짜를 구문 분석하고 정규식을 사용하여 형식을 다시 지정할 수 있습니다.

  • 패턴: (\d{1,2})/(\d{1,2})/(\d{4})
=REGEXREPLACE(A2, "(\d{1,2})/(\d{1,2})/(\d{4})", "$3-$2-$1")

이 수식은 날짜를 구문 분석한 다음 유효한 ISO와 유사한 형식으로 다시 포맷합니다. 또한 캡처 그룹()을 사용하여 교체 부품을 참조할 수도 있습니다.

예 5:지저분한 데이터 정리(예:추가 공백 제거)

정규식을 사용하면 불필요한 공백을 제거하고 서식을 정규화하는 등 지저분한 데이터를 정리할 수 있습니다.

추가 공백을 제거하려면 다음 패턴을 사용하세요.

  • 패턴: \s+
=REGEXREPLACE(A2, "\s+", " ")

이 공식은 공백을 단일 공백으로 대체합니다.

예 6:괄호 안의 내용 제거(괄호 포함)

  • 셀을 선택하고 다음 수식을 삽입하세요.
=REGEXREPLACE(D2,"\s*\(.*?\)","")
  • .*? 탐욕스럽지 않습니다 일치합니다. 마지막 닫는 괄호 대신 첫 번째 닫는 괄호에서 중지됩니다.

이 수식은 괄호 자체를 포함하여 괄호 안의 모든 데이터를 제거합니다.
Excel의 정규식 마스터:고급 사용자 단기집중 과정

예 7:주문 ID가 포함된 행 필터링

=FILTER(A2:F16,REGEXTEST(D2:D16,"TX-\d{4}"))

이 수식은 정규식 패턴을 기반으로 데이터를 필터링합니다.
Excel의 정규식 마스터:고급 사용자 단기집중 과정

Excel의 고급 정규식 기술

  • 미리보기/뒤돌아보기: 텍스트를 소비하지 않고 조건을 주장합니다.
    • 긍정적 예측:(?=…) 예:% 기호 앞의 숫자에 대해 \d+(?=%)$.
    • REGEXEXTRACT에서 가격 추출에 사용:\d+\.\d{2}(?=\sUSD)
  • 비캡처 그룹: (?:…) 캡처 없이 그룹화하는 경우
  • 교체: 옵션의 경우, 예를 들어 URL의 경우 (http|https)://\S+입니다.
  • 배열 처리: REGEXEXTRACT가 여러 그룹을 반환하는 경우 INDEX 또는 분산 범위를 사용하세요.
  • 다른 기능과 결합: 강력한 워크플로우를 위해 IF, FILTER 또는 LAMBDA를 중첩하세요.

팁 및 모범 사례

  • 테스트 패턴: "ECMAScript" 버전(Excel의 정규식과 가장 유사)을 갖춘 regex101.com과 같은 온라인 도구를 사용하세요.
  • 성능: 대규모 데이터 세트에서는 Regex가 느려질 수 있습니다. 먼저 샘플을 테스트해 보세요.
  • 오류: 일치하는 항목이 없으면 REGEXEXTRACT는 #N/A를 반환합니다. IFNA 또는 IFERROR로 처리하세요.
  • 제한사항: Excel의 정규식은 완전한 PCRE 지원 없이 하위 집합을 기반으로 하므로 재귀와 같은 고급 기능을 사용하지 마세요.
  • 자세히 알아보기: 실제 데이터 세트로 연습해 보세요. 정규 표현식을 사용하면 더욱 쉬워집니다!

연습 문제집 다운로드

마무리

Excel 고급 사용자는 정규식 충돌 과정을 따라 데이터 정리, 검증 및 자동화를 가속화할 수 있습니다. 기본 빌딩 블록에 익숙해지면 보다 정교한 패턴 일치를 위해 미리보기와 뒤돌아보기를 탐색하세요. 이 집중 강좌를 통해 시작해보세요. 먼저 표현식을 이해한 다음 빈 통합 문서에서 패턴을 실험해 보세요. Regex는 Excel에서 텍스트를 처리하는 방법을 변화시킬 수 있습니다!

솔루션이 포함된 무료 고급 Excel 연습을 받아보세요!