使用正则表达式(REGEX)的Excel数据验证
该教程在自定义RegexMatch函数的帮助下,使用正则表达式在Excel中显示了如何在Excel中进行数据验证。
在限制Excel工作表中的用户输入时,数据验证是必不可少的。想要在给定的单元格中仅允许数字或日期吗?还是将文本值限制为特定的长度?还是禁止在给定范围之外的时间?没问题,所有这些都可以通过预设或自定义验证标准轻松完成。但是,如果我只想允许匹配特定模式的有效电子邮件地址或字符串怎么办? las,这是不可能的。你说的正则是吗?嗯...可能会起作用!
如何使用REGEX进行Excel数据验证
遗憾的是,内置的Excel都没有支持Regexes,并且数据验证也不例外。为了能够使用正则表达式验证单元格输入,您需要先创建一个自定义的正则函数。另一个复杂的是,VBA用户定义的功能不能直接将数据验证提供给数据验证 - 您需要以命名公式的形式进行调解员。
考虑到上述内容,让我们简要概述使用Regexes中验证Excel中的数据的步骤:
- 创建一个自定义的正则函数,该功能检查输入值是否匹配正则表达式。
- 为您的正则公式定义名称。
- 根据命名公式配置数据验证规则。
- 将验证设置复制到所需的尽可能多的单元格。
听起来像计划吗?让我们尝试在实践中实施它!
使用自定义表达式的Excel数据验证
此示例解决了一个非常常见的情况 - 如何仅允许特定模式的值。
假设您在工作表中保留一些SKU代码,并希望确保只有与给定模式匹配的代码进入列表。前提是每个SKU由两组与连字符分开的字符组成,其中的第一组包括3个大写字母和第二个组-3个数字,您可以使用以下正则表达式识别此类值。
模式: ^[az] {3} - \ d {3} $
请注意,字符串的开始(^)和末端($)是锚定的,因此除了模式以外的字符都无法输入单元格中。
1。添加自定义的正则匹配功能
首先在工作簿中插入RegexPMatch功能。该代码已经由我们的Excel Gurus编写,因此您只需要从上述页面复制它并在VBA编辑器中粘贴即可。
这是函数的语法供您参考:
regexpMatch(文本,模式,[match_case])在哪里:
- 文本(必需) - 源字符串(在我们的上下文中 - 经过验证的单元格)。
- 模式(必需) - 匹配的正则表达式。
- match_case (可选) - 匹配类型。真实或省略 - 对病例敏感;错误 - 不敏感的情况。
提示。如果您是我们的Ultimate Suite的用户,则可以在Excel中进行正则数据验证,而无需在工作簿中添加任何VBA代码。只需利用我们的Regex工具中包含的自定义Ablebitsregexmatch功能即可。
2。创建一个命名公式
在您的目标工作表中,选择单元格A1(无论您实际要验证哪个单元格,无论其内容如何),按CTRL F3打开名称管理器,并为此公式定义名称:
=RegExpMatch(Sheet1!A1, "^[AZ]{3}-\d{3}$")
或者,您可以在某些单元格中输入正则罚款(在此示例中的A2),并向第二个参数提供$ 2:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
为了使公式正确工作,请确保为文本参数(A1)和模式的绝对参考使用相对参考($ 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] \。
有关语法的详细说明,请参阅Regex以匹配有效的电子邮件地址。
现在,通过执行已经熟悉的步骤来指定验证标准:
- 在B2中输入上述正则罚款。
- 选择单元格A1并定义一个名为validate_email的名称,该名称是指:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- 对于单元格B5,请使用以下公式应用自定义数据验证。至关重要的是,应忽略空白选项。
=Validate_Email
此外,您可以配置自定义错误消息,以提示用户输入有效的电子邮件地址。
- 将规则复制到下面的单元格。
如果您在经过验证的单元格中输入的电子邮件地址与正则表达式不匹配,则以下警报将弹出:
使用正则表达式验证密码
在使用Regex进行密码验证时,首先要确定的是您的正则表达式应检查的内容。以下是一些示例,可能会使您进入正确的轨道。
密码必须至少6个字符长,并且只能包含字母(大写或小写)和数字:
模式: ^[A-ZA-Z0-9] {6,} $
密码必须长至至少6个字符,并且至少包含一个字母和一位数字:
模式: ^(?=。*[a-za-z])(?=。*\ d)[a-za-z \ d] {6,} $
密码必须长6个字符,并至少包括一个大写字母,一个小写字母和一位数字:
模式: ^(?=。*[az])(?=。*[az])(?=。*\ d)[a-za-z \ d] {6,} $
密码必须长6个字符,至少包括一个字母,一个数字和一个特殊字符:
模式: ^(?=。*[a-za-z])(?=。*\ d)(?=。*[@$!%*#?&_--])[a-za-z \ d@$!$!%*#&_---&_--] {6,} $
建立模式后,您可以继续设置数据验证:
- 在C2中输入您的密码正则表达式。
- 选择单元格A1并创建一个名为validate_password的命名公式:
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- 对于Cell C5,使用以下公式创建自定义验证规则。请记住要解开忽略空白复选框。
=Validate_Password
- 将规则复制到任意多的单元格。
现在,您可以将新密码安全地添加到列表中。如果输入字符串不匹配正则条件,则以下警报将提醒您接受哪些值:
REGEX数据验证不起作用
如果Regex数据验证在您的Excel中不起作用,则很可能是由于以下原因之一。
REGEXPMATCH函数缺少
在应用数据验证之前,请确保在工作簿中插入RegexPMatch函数的代码。
不正确的正则表达
为了确保您的正则表达式按预期工作,您可以在某些单元格中输入REGEXPMATCH公式并检查结果。有关更多信息,请参阅Excel正则表达式与示例匹配。
要分析和调试您的正则表达式,您可以使用Regex101或Regexr等免费在线Regex测试服务。
错误命名公式
数据验证失败的一个非常常见的原因是指定为错误的单元格的正则公式。在所有示例中,我们建议定义一个参考A1的公式:
=RegExpMatch(A1, regex)
仅当使用“定义名称”和“无$符号”的相对引用时,仅当单元格A1处于活动状态时才起作用。
这个想法是,公式(A1)中指定的相对参考将根据已验证的单元格的相对位置自动更改。换句话说,仅出于方便和一致性而选择细胞A1。实际上,您可以选择细胞B1并参考B1,选择单元格C1并参考C1,依此类推。关键是引用的单元应该是活动单元格。
要检查您的命名公式是否正确,请选择工作表中的任何单元格,打开名称管理器,然后查看公式指向哪个单元格。如果它涉及当前选择的单元格,则公式是正确的。否则,您应该在第一个参数中更改参考。
在下面的屏幕截图中,选择了单元格A7,这意味着命名公式在第一个参数中应具有A7。第二个参数($ a 2 $ 2)是指正发性 - 此引用应该保持恒定,因此它被$符号锁定。
忽略空白选项
设置自定义数据验证规则时,重要的是要取消选择空白复选框。否则,该规则由于以下原因而行不通:
如果找不到匹配项,则REGEXPMATCH函数返回false。选择忽略空白选项时,False等于空白并被忽略。
另一种解决方案是明确指出该公式应返回true:
=RegExpMatch(…)=TRUE
这就是如何使用正则表达式在Excel中进行数据验证的方法。我感谢您阅读,并期待下周在我们的博客上与您见面!
练习工作簿下载
REGEX数据验证示例(.XLSM文件)
以上是使用正则表达式(REGEX)的Excel数据验证的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)