我使用以下公式作为多结果查找功能的一部分。我将其中几个公式分别放在另一行中,因此如果我在工作表1上的单元格catering
中输入K22
,我的公式会在列b
上查找匹配的单词第2页并在列a
中生成名称。
该公式还包括复制此查找几次以从其他列中获取具有相同匹配结果的其他值。
所以例如我在第2页上的列看起来像:
Name Description Location Number
Amy hotel london 1
Dave hotels manchester 2
Mike catering Birmingham 3
我想要做的是在我的单元格K22
周围使用通配符来显示我输入的描述词是否像酒店一样;即酒店,酒店等...然后找到结果?
...
我知道这可以使用索引匹配来完成,但是我可以使用以下代码吗?目前这是一个数组公式,但当我尝试这样做时,我得不到任何结果。有人可以告诉我我哪里出错,坦克
=IF(ISERROR(INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),1)),"",INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),1)) & " - " &IF(ISERROR(INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),3)),"",INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),3)) & " - " &IF(ISERROR(INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),4)),"",INDEX(Sheet2!$A$1:$D$7,SMALL(IF(Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*",ROW($B$1:$B$7)),ROW(1:1)),4
答案 0 :(得分:2)
虽然可以在MATCH
函数(以及其他上下文)中的查找值中使用通配符,但您无法在此处使用它们。使用通配符与=
直接比较时,例如
Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*"
*被解释为文字星号而不是通配符
用此
替换上述所有实例 ISNUMBER(SEARCH(Sheet1!$K$22,Sheet2!$B$1:$B$7))