Excel formula 正确的#值!在搜索方程中

Excel formula 正确的#值!在搜索方程中,excel-formula,Excel Formula,我正在一个单元格中搜索一个特定的单词。。。在这种情况下,这个词是“内阁”。当单词出现时,我希望我的单元格等于其他两个单元格的总和;当单词不出现时,我希望它等于0 我使用的是单元格A1,我使用的等式是=IF(搜索(“文件柜”,B1),F1,“0”) 当“CAB”出现在单元格中时,它返回正确的美元值,如果CAB不存在,它返回#值!而不是“0”。如果有帮助,单元格F1包含B1 x E1的方程式,即12 x$80。这里有一个例子 960 Base Cabinet 12 L/F $80.

我正在一个单元格中搜索一个特定的单词。。。在这种情况下,这个词是“内阁”。当单词出现时,我希望我的单元格等于其他两个单元格的总和;当单词不出现时,我希望它等于0

我使用的是单元格
A1
,我使用的等式是
=IF(搜索(“文件柜”,B1),F1,“0”)

当“CAB”出现在单元格中时,它返回正确的美元值,如果CAB不存在,它返回#值!而不是“0”。如果有帮助,单元格F1包含B1 x E1的方程式,即12 x$80。这里有一个例子

960      Base Cabinet   12  L/F  $80.00  $960.00
#VALUE!  Countertop     12  L/F  $20.00  $240.00

检查是查看
搜索
函数是否返回了一个数字。这表示已找到搜索词。如果未找到,则
搜索
返回#值!这是您收到的错误。通过
ISNUMBER
我们可以查看是否找到了搜索

=IF(ISNUMBER(搜索(“文件柜”,B1)),F1,0)


请注意,没有必要将0括在引号中。这样做会将零减少为数字的文本表示,而不是真数字。

最好使用
IfError
@chrisneilsen-我实际上使用
IfError
编写了一个替代公式,但由于将其合并到If语句中的复杂性,我放弃了答复的这一部分
=IFERROR(IF(SEARCH(“Cabinet”,B1),F1),0)
似乎没有太大的改进,并且失去了Excel 2007之前的兼容性。一个更好的公式可能是
=IF(COUNTIF(B1,“*Cabinet*”),F1,0)
,但问题是
SEARCH
。那么
=IFERROR((SEARCH(“Cabinet”,B1)>0)*F1,0)
呢,不管怎样,
SEARCH
是为了“你尝试了什么?”提出一个不同的功能也可以。至于2007年之前的支持,现在是时候了,十年前,不支持的版本不再被认为是默认的verion了。如果OP想要2003年的支持,他需要这样说。