Excel 公式 IF(ISERROR

Excel Formula IF(ISERROR

我有一个公式需要一些帮助。我想要实现的是检查单元格 A 中的文本是否出现在单元格 C 列中的任何位置,如果文本确实出现,那么我希望 excel 从匹配的单元格 C 中打印数据。 到目前为止我所拥有的是;

=IF(ISERROR(MATCH("&A3&"",$C$2:$C$8,0)),"",A3)

现在这个公式做了我想要的,但它打印了单元格 A 的内容,这不仅仅是将它更改为单元格 C 的情况,因为它不会打印匹配的单元格。

我相信这很简单,在此先感谢您的回复。

您需要使用 INDEX 来获取 C 列中匹配单元格的内容。

如果你有最新版本的Excel(2007年起),你可以使用IFERROR检查是否匹配成功:-

=IFERROR(INDEX($C:$C,MATCH("*"&A3&"*",$C:$C,0)),"") 

如果不是,请像您一样使用 ISERROR,然后使用 INDEX 函数:-

=IF(ISERROR(MATCH("*"&A3&"*",$C:$C,0)),"",INDEX($C:$C,MATCH("*"&A3&"*",$C:$C,0)))

你也可以使用 VLOOKUP:-

=IFERROR(VLOOKUP("*"&A3&"*",$C:$C,1,FALSE),"")

=IF(ISERROR(VLOOKUP("*"&A3&"*",$C:$C,1,FALSE)),"",VLOOKUP("*"&A3&"*",$C:$C,1,FALSE))

如果 C2:C8 中的字符串超过 256 个字符,您可以使用建议的方法 Here。使用 FIND 进行部分匹配,这将给出公式:-

=IFERROR(INDEX($C:$C,MATCH(TRUE,ISNUMBER(FIND(A3,$C:$C)),0)),"")

必须使用 Ctrl-Shift-Enter 作为数组公式输入。

如果您不希望它区分大小写,请使用 SEARCH 而不是 FIND。和以前一样,您也可以使用 IF(ISERROR... 向后兼容。