添加通配符来查找公式?

时间:2014-10-17 19:20:27

标签: excel

我使用以下公式作为多结果查找功能的一部分。我将其中几个公式分别放在另一行中,因此如果我在工作表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

1 个答案:

答案 0 :(得分:2)

虽然可以MATCH函数(以及其他上下文)中的查找值中使用通配符,但您无法在此处使用它们。使用通配符与=直接比较时,例如

Sheet2!$B$1:$B$7="*"&Sheet1!$K$22&"*"

*被解释为文字星号而不是通配符

用此

替换上述所有实例

ISNUMBER(SEARCH(Sheet1!$K$22,Sheet2!$B$1:$B$7))