목차
튜토리얼은 사용자 지정 RegexMatch 함수의 도움으로 정규 표현식을 사용하여 Excel에서 데이터 유효성 검사를 수행하는 방법을 보여줍니다.
Excel 워크시트에서 사용자 입력을 제한할 때 데이터 유효성 검사 필수 불가결합니다. 지정된 셀에 숫자나 날짜만 허용하고 싶습니까? 또는 텍스트 값을 특정 길이로 제한하시겠습니까? 아니면 주어진 범위 밖의 시간을 허용하지 않습니까? 문제 없습니다. 사전 설정 또는 사용자 정의 검증 기준을 사용하여 이 모든 작업을 쉽게 수행할 수 있습니다. 그러나 특정 패턴과 일치하는 유효한 이메일 주소 또는 문자열만 허용하려면 어떻게 해야 합니까? 아아, 그건 불가능합니다. 당신이 말하는 정규식? 음… 그럴 수도 있겠네요!
정규식을 사용하여 Excel 데이터 유효성 검사를 수행하는 방법
안타깝게도 기본 제공 Excel 기능 중 어느 것도 정규식을 지원하지 않으며 데이터 유효성 검사는 예외. 정규식을 사용하여 셀 입력의 유효성을 검사하려면 먼저 사용자 정의 Regex 함수를 생성해야 합니다. 또 다른 복잡한 문제는 VBA 사용자 정의 함수가 데이터 유효성 검사에 직접 제공될 수 없다는 것입니다. 명명된 수식 형식의 중재자가 필요합니다.
위의 내용을 고려하여 취해야 할 단계를 간략하게 설명하겠습니다. 정규식을 사용하여 Excel에서 데이터를 확인하려면:
- 입력 값이 정규식과 일치하는지 확인하는 사용자 지정 정규식 함수를 만듭니다.
- 정규식 수식의 이름을 정의합니다.
- 명명된 수식을 기반으로 데이터 유효성 검사 규칙을 구성합니다.
- 복사원하는 만큼의 셀에 대한 유효성 검사 설정.
계획처럼 들리나요? 실제로 구현해 봅시다!
사용자 지정 정규식을 사용한 Excel 데이터 유효성 검사
이 예제는 특정 패턴의 값만 허용하는 방법과 같은 매우 일반적인 사례를 다룹니다.
워크시트에 일부 SKU 코드를 보관하고 주어진 패턴과 일치하는 코드만 목록에 포함되도록 하려고 한다고 가정합니다. 각 SKU가 하이픈으로 구분된 2개의 문자 그룹으로 구성되어 있는 경우 첫 번째 그룹에는 3개의 대문자가 포함되고 두 번째 그룹에는 3개의 숫자가 포함되며 이러한 값은 아래 정규식을 사용하여 식별할 수 있습니다.
패턴 : ^[A-Z]{3}-\d{3}$
문자열의 시작(^)과 끝($)이 고정되어 있으므로 패턴을 셀에 입력할 수 있습니다.
1. 사용자 지정 Regex Match 함수 추가
통합 문서에 RegExpMatch 함수를 삽입하는 것으로 시작합니다. 이 코드는 Excel 전문가가 이미 작성했으므로 위에 링크된 페이지에서 코드를 복사하여 VBA 편집기에 붙여넣기만 하면 됩니다.
참고용 함수 구문은 다음과 같습니다.
RegExpMatch(text , pattern, [match_case])여기서:
- Text (필수) - 소스 문자열(우리의 맥락에서 - 검증된 셀).
- Pattern (필수) - 일치시킬 정규 표현식.
- Match_case (선택 사항) - 일치 유형. TRUE 또는 생략 - 대소문자-예민한; FALSE - 대소문자를 구분하지 않습니다.
팁. Ultimate Suite 사용자인 경우 통합 문서에 VBA 코드를 추가하지 않고도 Excel에서 정규식 데이터 유효성 검사를 수행할 수 있습니다. Regex 도구에 포함된 사용자 지정 AblebitsRegexMatch 기능을 활용하기만 하면 됩니다.
2. 명명된 수식 만들기
대상 워크시트에서 셀 A1을 선택하고(내용과 실제로 유효성을 검사할 셀에 관계없이) Ctrl + F3을 눌러 이름 관리자를 열고 이름을 정의합니다. 이 수식의 경우:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
또는 일부 셀(이 예에서는 A2)에 정규식을 입력하고 두 번째 인수에 $A$2를 제공할 수 있습니다.
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
수식이 올바르게 작동하려면 text 인수(A1)에 대한 상대 참조와 pattern ($A$2)에 대한 절대 참조를 사용해야 합니다.
공식은 SKU 번호를 확인하는 데 목적이 있으므로 Validate_SKU 라는 이름을 적절하게 지정합니다.
중요 참고 사항! 수식을 정의할 때 첫 번째 인수가 현재 선택된 셀 을 참조하는지 다시 확인하십시오. 그렇지 않으면 수식이 작동하지 않습니다. 예를 들어 시트에서 A1 셀이 선택된 경우 첫 번째 인수에 A1을 입력합니다(권장 사항에 따라). B2가 선택되면 첫 번째 인수로 B2를 사용하는 식입니다. 현재 선택한 셀과 일치하는 한 어떤 특정 참조를 사용하는지는 중요하지 않습니다.
단계별지침은 Excel에서 명명된 수식을 만드는 방법을 참조하십시오.
3. 데이터 유효성 검사 설정
확인할 첫 번째 셀(이 경우 A5)을 선택하고 명명된 수식을 기반으로 사용자 지정 데이터 유효성 검사 규칙을 만듭니다. 이를 위해 다음을 수행합니다.
- 데이터 탭 > 데이터 유효성 검사 를 클릭합니다.
- 허용 드롭다운 목록에서 사용자 지정 을 선택합니다.
- 해당 상자에 아래 수식을 입력합니다.
=Validate_SKU
- 공백 무시 옵션을 선택 취소하지 않으면 규칙이 작동하지 않습니다.
선택적으로 다음을 입력할 수 있습니다. 유효하지 않은 데이터가 셀에 입력될 때 표시되는 사용자 지정 오류 메시지입니다.
자세한 단계가 필요하다고 생각되면 Excel에서 사용자 지정 데이터 유효성 검사를 설정하는 방법을 참조하십시오.
4. 더 많은 셀에 데이터 유효성 검사 복사
더 많은 셀에 유효성 검사 설정을 복사하려면 다음을 수행해야 합니다.
- 데이터 유효성 검사가 있는 셀을 선택하고 Ctrl + C를 눌러 복사합니다.
- 확인할 다른 셀을 선택하고 마우스 오른쪽 버튼으로 클릭한 다음 선택하여 붙여넣기 를 클릭하고 유효성 검사 옵션을 선택합니다.
- 확인 을 클릭합니다.
자세한 내용은 데이터 유효성 검사 복사 방법에서 확인할 수 있습니다.
이제 누군가가 유효성 검사된 셀에 잘못된 SKU를 입력하려고 시도할 때마다 다음과 같은 오류가 발생합니다. 경고 메시지가 나타납니다:
정규식으로 이메일 유효성 검사
이메일 유효성 검사를 수행하려면 다음을 시작하십시오.이메일 주소와 일치하는 정규 표현식을 작성합니다.
패턴 : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
구문에 대한 자세한 설명은 다음을 참조하십시오. 유효한 이메일 주소와 일치하는 정규식을 참조하세요.
그리고 이제 익숙한 단계를 수행하여 유효성 검사 기준을 지정합니다.
- B2에 위의 정규식을 입력합니다.
- A1 셀을 선택하고 다음을 참조하는 Validate_Email 이라는 이름을 정의합니다.
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- 셀 B5의 경우 아래 수식을 사용하여 사용자 지정 데이터 유효성 검사를 적용합니다. 공백 무시 옵션을 선택 해제해야 합니다.
=Validate_Email
또한 사용자에게 유효한 이메일 주소를 입력하라는 사용자 정의 오류 메시지를 구성할 수 있습니다.
- 규칙을 아래 셀에 복사합니다.
유효한 셀에 입력한 이메일 주소가 정규식 패턴과 일치하지 않으면 다음 알림이 표시됩니다. pop up:
정규식을 사용하여 비밀번호 유효성 검사
비밀번호 유효성 검사에 정규식을 사용할 때 가장 먼저 결정해야 할 것은 정규식이 정확히 무엇을 확인해야 하는지입니다. 다음은 올바른 길로 안내할 수 있는 몇 가지 예입니다.
비밀번호는 6자 이상이어야 하며 문자(대문자 또는 소문자)와 숫자만 포함할 수 있습니다.
패턴 : ^[A-Za-z0-9]{6,}$
비밀번호는 최소 6자 이상이어야 하며 문자를 하나 이상 포함해야 합니다.한 자리:
패턴 : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$
비밀번호는 최소 6자 이상이어야 하며 대문자, 소문자 및 숫자를 하나 이상 포함해야 합니다.
패턴 : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
암호는 최소 6자여야 합니다. 길고 하나 이상의 문자, 하나의 숫자 및 하나의 특수 문자를 포함합니다.
Pattern : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
패턴이 설정되면 데이터 유효성 검사 설정으로 이동할 수 있습니다.
- C2에 비밀번호 정규식을 입력합니다.
- A1 셀을 선택하고 이라는 명명된 수식을 만듭니다. Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- C5 셀에 대해 아래 수식을 사용하여 사용자 지정 유효성 검사 규칙을 만듭니다. 공백 무시 확인란의 선택을 취소해야 합니다.
=Validate_Password
- 규칙을 원하는 만큼 셀에 복사합니다.
이제 목록에 새 암호를 안전하게 추가할 수 있습니다. 입력 문자열이 정규식과 일치하지 않는 경우 허용되는 값의 종류를 알려주는 다음 경고가 표시됩니다. , 다음 이유 중 하나 때문일 가능성이 큽니다.
RegExpMatch 함수 누락
데이터 유효성 검사를 적용하기 전에 통합 문서에 RegExpMatch 함수의 코드를 삽입해야 합니다.
잘못된 규칙expression
정규식이 예상대로 작동하는지 확인하려면 일부 셀에 RegExpMatch 수식을 입력하고 결과를 검사할 수 있습니다. 자세한 내용은 예제와 일치하는 Excel 정규식을 참조하세요.
정규식을 분석하고 디버그하려면 RegEx101 또는 RegExr과 같은 무료 온라인 정규식 테스트 서비스를 사용할 수 있습니다.
잘못된 이름의 수식
데이터 유효성 검사 실패의 가장 일반적인 이유는 잘못된 셀을 참조하는 Regex 명명된 수식입니다. 모든 예에서 A1을 참조하는 수식을 정의하는 것이 좋습니다.
=RegExpMatch(A1, regex)
이름을 정의할 때 셀 A1이 활성 인 경우에만 작동하고 상대 참조 ($ 기호 없음)가 사용됩니다.
수식(A1)에 지정된 상대 참조는 유효성 검사된 셀의 상대 위치에 따라 자동으로 변경됩니다. 즉, 편의와 일관성을 위해 A1 셀이 선택되었습니다. 실제로 B1 셀을 선택하고 B1을 참조하고, C1 셀을 선택하고 C1을 참조하는 식으로 계속할 수 있습니다. 중요한 것은 참조 셀 이 활성 셀 이어야 한다는 것입니다.
명명된 수식이 올바른지 확인하려면 워크시트에서 아무 셀이나 선택하고 이름 관리자를 클릭하고 수식이 가리키는 셀을 확인합니다. 현재 선택한 셀을 참조하는 경우 공식이 맞습니다. 그렇지 않으면 첫 번째 인수에서 참조를 변경해야 합니다.
스크린샷에서아래에서 셀 A7이 선택되었습니다. 즉, 명명된 수식의 첫 번째 인수에 A7이 있어야 합니다. 두 번째 인수($A$2)는 정규식을 참조합니다. 이 참조는 상수로 유지되어야 하므로 $ 기호로 잠겨 있습니다.
빈칸 무시 옵션 선택됨
사용자 지정 데이터 유효성 검사 규칙을 설정할 때 빈칸 무시 확인란을 선택 해제하는 것이 중요합니다. 그렇지 않으면 다음과 같은 이유로 규칙이 작동하지 않습니다.
일치 항목이 없으면 RegExpMatch 함수는 FALSE를 반환합니다. 공백 무시 옵션을 선택하면 FALSE는 공백과 같으며 무시됩니다.
수식이 TRUE:
=RegExpMatch(…)=TRUE
정규식을 사용하여 Excel에서 데이터 유효성 검사를 수행하는 방법입니다. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙기를 기대합니다!
다운로드용 실습 워크북
정규식 데이터 유효성 검사 예(.xlsm 파일)