我试图区分包含字母数字数据的单元格和数字单元格。我使用istext()& isnumber()取得了部分成功。但是,当字母数字字符出现时,此逻辑失败。在excel中检测“纯”字母
我的意图是检测只有字母的单元格。包含数字或字母数字字符的单元格需要被触发为false。
在此先感谢。
我试图区分包含字母数字数据的单元格和数字单元格。我使用istext()& isnumber()取得了部分成功。但是,当字母数字字符出现时,此逻辑失败。在excel中检测“纯”字母
我的意图是检测只有字母的单元格。包含数字或字母数字字符的单元格需要被触发为false。
在此先感谢。
=SUMPRODUCT(0+ISNUMBER(0+MID(A1,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1))),1)))=0
你也可以使用,用CSE
(CTRL + SHIFT + Enter),则稍短:
=COUNT(0+MID(A1,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1))),1))=0
传递的建设MID
的start_num
参数在这里,即:
ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1)))
是non-volatile
(实际上,在技术上挥发性在工作簿打开只) - 和因此是优选的 - 替代例如:)
ROW(INDIRECT("1:"&LEN(A1)))
问候
您可以:
IsAlpha = len(s) > 0 and not s like "*[!A-Za-z]*"
您可以使用以下普通快递来测试字母。
JavaScript代码:
=/^ [A-ZA-Z()] + $ /测试(A1)
如果要避免。宏并希望将其用于验证,或者在条件格式规则中标记无效单元格,则非vba公式很有用。
我发现迄今为此而不凌乱CODE()
功能和ASCII值的唯一方法是用SEARCH()
使用数组式(按CTRL + SHIFT + ENTER)是这样的:
IsPureAlpha :
=MIN(--(ISNUMBER(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"abcdefghijklmnopqrstuvwxyz"))))=1
说明:
MID
函数的字符。SEARCH()
(不区分大小写)表示允许的[a-zA-Z]范围内的每个字符。--
双重一元减法技巧转换为二进制。MIN()
将检测到阵列中的任何0。
..........不错的公式........... –
@ Gary的学生干杯! :-) –
@XORLX标题说“纯字母”,但不会将此公式视为_- * ^等符号有效吗?似乎没有办法在不使用'CODE()'的情况下在公式中限制[a-zA-z]? –