Excel查找功能;值的例外情况

时间:2013-08-09 17:07:59

标签: excel function find return

我最近了解到,当Excel's Find function在大海捞针中找不到针时(即未找到匹配项),会返回#VALUE错误。我有几个关于这种行为的问题:

  1. 是否有另一个Excel函数作为Find工作,但在找不到匹配项时返回实际值(例如-1)?
  2. 该功能是否有任何众所周知的原因?我的意思是,谈论一般编程和软件设计,是否有一种已知的模式(或方法,或设计哲学),当函数不返回时,更喜欢抛出异常而不是返回值(如-1,0,“或类似”)一个“有效”的价值?

1 个答案:

答案 0 :(得分:14)

Find函数查找区分大小写的匹配项,可以使用IsNumber进行测试,例如:

=IF(ISNUMBER(FIND("abc",A1)),FIND("abc",A1),"No exact match")

有一个非常类似的函数叫做Search,它执行相同的操作,但不区分大小写。如果未找到匹配项,它也会返回错误。

因此,如果您正在寻找某些内容并希望在没有匹配且您不担心区分大小写的情况下返回-1,那么这样的内容应该对您有用:

=IF(COUNTIF(A1,"*abc*")=0,-1,SEARCH("abc",A1))

对于区分大小写的搜索,它将是:

=IF(ISNUMBER(FIND("abc",A1)),FIND("abc",A1),-1)

如果您使用的是Excel 2007或更高版本,则可以使用IFERROR跳过错误检查:

=IFERROR(SEARCH("abc",A1),-1)
=IFERROR(FIND("abc",A1),-1)