检查单元格是否包含 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!
错误.
您可以将此公式括在 ISNUMBER
或 ISERR
中以将其转换为 TRUE/FALSE 值。
将 SEARCH
替换为 FIND
以使其区分大小写。使用 FIND
将确保通配符“?~*”被识别为非字母字符。
您可以在 "abc...xyz"
字符串中放置任何字符。这使得测试字母数字或常见标点符号等变得容易。
"1:"&LEN(A1)
表示从第一个字母开始,一直检查到最后一个字母。将其更改为 "2:"&(LEN(A1)-1)
将不会检查第一个和最后一个字母。
是否有非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!
错误.您可以将此公式括在
ISNUMBER
或ISERR
中以将其转换为 TRUE/FALSE 值。将
SEARCH
替换为FIND
以使其区分大小写。使用FIND
将确保通配符“?~*”被识别为非字母字符。您可以在
"abc...xyz"
字符串中放置任何字符。这使得测试字母数字或常见标点符号等变得容易。
"1:"&LEN(A1)
表示从第一个字母开始,一直检查到最后一个字母。将其更改为 "2:"&(LEN(A1)-1)
将不会检查第一个和最后一个字母。