首页 > 解决方案 > 如何获取搜索结果的单元格位置/行

问题描述

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

我试过这个: =INDEX(D:D;SUMPRODUCT(ISNUMBER(SEARCH(C:C;A1))*ROW(1:1)))

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

例如:

A1 包含“Hello World”

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

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

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

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

标签: excelexcel-formula

解决方案


使用 AGGREGATE 将行号返回给 INDEX:

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

在此处输入图像描述


推荐阅读