用于验证电子邮件地址的 Excel 公式

Posted

技术标签:

【中文标题】用于验证电子邮件地址的 Excel 公式【英文标题】:Excel Formula for Validating Email Addresses 【发布时间】:2018-08-21 12:01:22 【问题描述】:

我想检查一下是否有人可以提供以下帮助。

我想要一个电子邮件地址的验证公式。在梳理了互联网和其他线程后,我发现了一些可行的方法。

但是,我希望数据验证能够检查逗号并将其标记为错误。当前公式仅标记空格。

对调整这个公式有什么建议/建议吗?

=AND(FIND(“@”,A2),FIND(“.”,A2),ISERROR(FIND(” “,A2)))

【问题讨论】:

验证电子邮件可能很困难。使用没有 VBA 的 Excel 公式,如果操作正确,那将是一场噩梦。通常,其他语言使用 RegEx 进行验证 - ***.com/questions/201323/… @Vityata:“验证电子邮件可能很困难。”:不,这真的很容易,因为您对电子邮件地址唯一真正可以说的是:它必须包含@ 字符。您的链接答案显示了一个非常好的正则表达式,但我敢打赌,即使这不包括一些奇怪但有效的电子邮件地址。 您需要它有效吗?还是您需要它既有效又正确?如果是后者,请设置一个包含发送/接收激活电子邮件的系统。 您好,感谢您的回复。我将此作为前端用户输入的数据验证,并且由于默认情况下禁用宏,如果用户不允许宏运行,验证将无法工作。因此,我尝试在没有 vba 或其他编码的情况下进行简单的消除。我们确实有一个用于发送/接收激活电子邮件的系统,但该系统将在此过程的后期出现。感谢任何其他 cmets / 反馈! 【参考方案1】:

要“调整”您的公式以同时检查逗号,您可以使用数组常量:

编辑:更正公式以允许其在数据验证中使用(删除数组常量)

=AND(ISNUMBER(FIND("@",A2)),ISNUMBER(FIND(".",A2)),ISERROR(OR(FIND(" ",A2),FIND(",",A2))))

我仅将其作为一种方法来展示从字符串中排除多个字符的一种测试方法。在我看来,这不是验证电子邮件地址的好方法。

请注意,如果您的公式没有找到“@”或“.”,将返回 #VALUE! 错误。如果您希望它返回 FALSE,建议您将这些 FIND 包装在 ISNUMBER 函数中。

但是,这只是我的意见,我认为确保电子邮件地址有效且正确的最佳方法是使用包含激活电子邮件的系统。这样可以避免拼写错误和格式错误的数据。

当然,您的公式将允许某些类型的无效电子邮件。例如,它不测试@ 是否在字符串中间,也不测试点。也不是点在@之前。等等等等等等

【讨论】:

您的公式不包括"Jane Doe"@example.com"Doe,Jane"@example.com,它们都是有效的电子邮件地址。此外,在电子邮件地址中的某处也不必有一个点。 @AxelRichter 这不是 MY 验证电子邮件地址的公式。我想我很清楚我只是按照他的要求调整了 OP 的公式,但我认为这不是一个好方法。它还将验证无效的@jane.doe 类型的电子邮件,并且无法验证许多其他合规地址。我将添加一些进一步的评论来澄清。 您好,感谢您的帮助。到目前为止,根据我的经验,我还没有看到带有空格或逗号的电子邮件地址。我正在尝试做的是消除常见错误,例如错过@和.和拼写错误,因为 , 和 。彼此靠近。你能帮我解决你建议的 ISNUMBER 公式吗?我真的不擅长更高级的 Excel 公式(正如你所知道的,我什至无法自己调整公式)。非常感谢! 我只是试图将调整后的公式作为数据验证公式,但我收到一条错误消息——“你不能使用引用运算符,如联合、交叉和范围或数组常量作为数据验证标准”。还有其他方法吗?提前致谢! @Wayne 只需使用OR 函数而不是数组常量。查看编辑。

以上是关于用于验证电子邮件地址的 Excel 公式的主要内容,如果未能解决你的问题,请参考以下文章

验证电子邮件地址是贝宝用户

通过 Android 应用程序验证 Paypal 电子邮件地址

C# 校验Email(电子邮件)地址是否合法

如何在接受多个电子邮件地址的字段上实现 MVC 不显眼的验证

怎样在windows messenger中验证我的电子邮件地址?

正则表达式从字符串中查找电子邮件地址