检查单元格是否包含 Excel 中的非字母字符

Check if cell contains Non-Alpha characters in Excel

是否有非VBA 方法来检查 Col B 和 Col C 是否包含任何非 Alpha 字符?只是为了澄清 Non-Alpha 我的意思是任何不属于字母表的部分(不区分大小写)。

B 列和 C 列是名字和姓氏的列表。由于错误的数据输入,其中一些名称中包含符号或数字。我正在尝试找到所有需要修复的问题。所以我需要找到那些包含 ANYTHING 不是字母的那些。

您可以使用 26 个嵌套 SUBSTITUTE 来删除文本中的所有字母字符。

如果有遗漏,则表示单元格包含非字母字符。

感谢@RaGe 指出您还需要检查空单元格:

=AND(ISTEXT(A2),SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2),"a",),"b",),"c",),"d",),"e",),"f",),"g",),"h",),"i",),"j",),"k",),"l",),"m",),"n",),"o",),"p",),"q",),"r",),"s",),"t",),"u",),"v",),"w",),"x",),"y",),"z",) = "")

有一个“奇怪”但简单而通用的答案。

=SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"abcdefghijklmnopqrstuvwxyz"))
  • 如果 A1 包含任何非字母字符,则此公式 returns #VALUE! 错误;如果 A1 仅包含字母,则为数字;如果 A1 为空白,则 #REF! 错误.

  • 您可以将此公式括在 ISNUMBERISERR 中以将其转换为 TRUE/FALSE 值。

  • SEARCH 替换为 FIND 以使其区分大小写。使用 FIND 将确保通配符“?~*”被识别为非字母字符。

  • 您可以在 "abc...xyz" 字符串中放置任何字符。这使得测试字母数字或常见标点符号等变得容易。

"1:"&LEN(A1)表示从第一个字母开始,一直检查到最后一个字母。将其更改为 "2:"&(LEN(A1)-1) 将不会检查第一个和最后一个字母。