为什么逗号分隔或命名范围SEARCH()函数在Excel中不起作用

时间:2019-05-09 16:18:02

标签: excel excel-formula

我想在单元格中的文本中搜索Excel 2016中的预定义关键字。我正在使用SEARCH()函数。输入多个“ find_text”后,无论执行什么操作,我的SEARCH函数都将返回“ #VALUE!”。错误。

我的“ within_text”是表列中一个名为“消息”的单元格。文本为“预订新交易时发生异常,错误:未知错误(0)”,我正在搜索的关键字为{“成功”,“未知”,“失败”}

=SEARCH({"Success","Unknown","Failed"},Q_DTL_GetAll__3[@MESSAGE])

我甚至像这样使用命名范围

=SEARCH(Test,Q_DTL_GetAll__3[@MESSAGE])

每次我都得到“ #VALUE!”错误,而我期望inside_text中的“未知”一词的位置。

2 个答案:

答案 0 :(得分:2)

问题是,如果它只能包含这些单词之一,那么在其中不包含关键字之一的情况下,SEARCH函数将返回错误。使用IFERROR捕获错误,以将错误(未找到值)设置为0,然后获取MAX以查找找到的单词的位置(如果有)。如果未找到任何值,则结果将仅为0:

=MAX(INDEX(IFERROR(SEARCH({"Success","Unknown","Failed"},Q_DTL_GetAll__3[@Message]),0),))

答案 1 :(得分:0)

您可以使用通常输入的功能:

=AGGREGATE(14,6,SEARCH({"Success","Unknown","Failed"},Q_DTL_GetAll__3[@MESSAGE]),1)

您的SEARCH返回一个值数组。在给定的情况下:

{#VALUE!,42,#VALUE!}

因此,您需要一些仅返回非错误值的方法。 AGGREGATE可以做到。

如果不存在任何单词,则此公式将返回#NUM!错误。您可以按照自己的意愿进行处理。