如何获取搜索结果的单元格位置/行

时间:2019-08-15 19:45:37

标签: excel excel-formula

我正在尝试将包含长字符串(A1)的单元格与关键字列表(C:C)进行比较。我想获取第一个匹配的单元格位置,以便引用相应数组(D:D)中的值。

我已经尝试过了: = INDEX(D:D; SUMPRODUCT(ISNUMBER(SEARCH(C:C; A1))* ROW(1:1)))

但是这似乎是错误的:从SEARCH函数返回的数字不是行号,而是find_text和inside_text值之间共有的字符数。

例如:

A1包含“ Hello World”

C1“随机” C2“关键字” C3“世界”

D1“失败” D2“失败” D3“成功”

我想在B1中有一个采用A1的公式,看看它是否包含C:C中的值之一,如果是,则引用D:D中的相应值。

这意味着在这里我将在B1中获得“成功”

2 个答案:

答案 0 :(得分:1)

使用AGGREGATE将行号返回到INDEX:

=INDEX(D:D,AGGREGATE(15,7,ROW($C$1:$C$3)/(ISNUMBER(SEARCH(" "&$C$1:$C$3&" "," "&A1&" "))),1))

enter image description here

答案 1 :(得分:0)

我通常使用通配符。这也应该起作用。

= INDEX(D1:D3,MATCH(“ World ”,C1:C3,0))