如何验证 Excel 中的一组字符?

如何验证 Excel 中的一组字符?

我想制定一个验证规则,禁止在给定单元格中输入某些字符。例如,如果我的搜索字符集是("/","&","%"),那么我应该得到以下搜索结果:

"Test, test" = false
"Te/st" = true
"Test...test&"= true

而后两个例子则不应该被允许。

我想我正在寻找类似于 SQL 的 WHERE...IN 语法的东西。我该如何在 Excel 中做到这一点?我知道我只能使用 OR() 或嵌套的 IF() 语句,但我想知道是否有更简洁的东西。

答案1

如果您使用的是 Excel 2007,您可以尝试以下操作:

=IFERROR(FIND("%",A1),0)+IFERROR(FIND("&",A1),0)+IFERROR(FIND("/",A1),0)

如果字符串有效则返回 0,如果无效则返回正数。

如果你使用的是 2003,那么你需要将 IFERROR 更改为 IF(ISERROR)seg

=IF(ISERROR(FIND("%",A1)),0,1)+IF(ISERROR(FIND("&",A1)),0,1)+IF(ISERROR(FIND("/",A1)),0,1)

如果字符串有效,则返回 0,如果无效,则返回 1。

注意:您的逻辑是否定的(即,您使用 TRUE 表示有错误,使用 FALSE 表示无错误),但如果您愿意的话,可以很容易地逆转。

答案2

这是另一个选择

=SUM(COUNTIF(A1,{"*%*","*&*","*/*"}))>0

要从某个范围获取字符列表:

如果要测试的字符串在 A2 中,并且字符列表在 A1:C1 中

=SUM(COUNTIF(A2,"*"&($A$1:$C$1)&"*"))>0

答案3

您可以使用多个 find 调用。测试它是否是数字,然后它是否包含禁用字符。

isnumber(find("/", cell)+find("%", cell)+find("&", cell))

错误的- 检查单元格中是否包含所有字符。我没有测试整个语句,因为我的 excel 有另一种本地化版本,而且我太懒了。也应该是分号。@Rhys Gibsons 的答案是正确的,感谢 @chris neilsen 的提示!

相关内容