我有3个关键字要在数组中查找。它们必须全部存在于单元格中并以任何顺序识别。示例:我正在寻找A,B和C.单元格可能包含“A,B,C”,“A,C,B”,“C,B,A”等。它需要找到它们全部。
这就是我成功为第一个关键字拉取数组的内容。 假设我的第一个关键字在A2中。第二和第三将分别进入A3和A4。
正在搜索的数据集存在于“Lock_Full数据”表中。搜索结果填写在他们自己的工作表“搜索结果”中。
我绝对无法弄清楚如何寻找多个值!
=IF($A$2="","",
IF(ISERROR(INDEX('Lock_Full Data'!$A:$D,
SMALL(IF(ISNUMBER(SEARCH($A$2,'Lock_Full Data'!$D:$D)),
ROW('Lock_Full Data'!$D:$D)),ROW(7:7)),1)),"",
INDEX('Lock_Full Data'!$A:$D,
SMALL(IF(ISNUMBER(SEARCH($A$2,'Lock_Full Data'!$D:$D)),
ROW('Lock_Full Data'!$D:$D)),ROW(7:7)),1)))
答案 0 :(得分:1)
我建议您使用限制范围而不是使用完整列,因此假设第2行到第100行(根据需要更改)中的数据,您可以使用此公式
=IF(COUNTA(A$2:A$4)<3,"",IFERROR(INDEX('Lock_Full Data'!A$2:A$100,AGGREGATE(15,6,(ROW('Lock_Full Data'!D$2:D$100)-ROW('Lock_Full Data'!D$2)+1)/(MMULT(ISNUMBER(SEARCH(TRANSPOSE(A$2:A$4),'Lock_Full Data'!D$2:D$100))+0,{1;1;1})=3),ROWS(F$7:F7))),""))
以 CTRL + SHIFT + ENTER 确认并向下复制
替代版本使用SMALL
函数,如下所示:
=IF(COUNTA(A$2:A$4)<3,"",IFERROR(INDEX('Lock_Full Data'!A$2:A$100,SMALL(IF(MMULT(ISNUMBER(SEARCH(TRANSPOSE(A$2:A$4),'Lock_Full Data'!D$2:D$100))+0,{1;1;1})=3,ROW('Lock_Full Data'!D$2:D$100)-ROW('Lock_Full Data'!D$2)+1),ROWS(F$7:F7))),""))
假设单元格F7
中的第一个公式 - 如果不同,则更改公式中的ROWS(F$7:F7)
部分以匹配。注意 - 如果您将A2:A4
置于A2:C2
之类的水平范围内,那么您可以摆脱TRANSPOSE
功能
您可以轻松扩展此版本以满足5个或10个或更多搜索字词,只需更改3和{1;1;1}