我想在单元格中的文本中搜索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中的“未知”一词的位置。
答案 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!
错误。您可以按照自己的意愿进行处理。