我使用以下公式索引工作表2上的数据,并找到与工作表1上的单元格K22中输入的匹配值相似或完全匹配的值。
我使用了以下代码并使用&组合在一起语句给我从单独的列中得到多个结果。
= IF(ISERROR(INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),1)),"",INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),1))
所以我完成的组合代码如下所示:
=`IF(ISERROR(INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),1)),"",INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),1)) & " - " & IF(ISERROR(INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(RIGHT(Sheet2!$A$1:$D$10004,5)=RIGHT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),3)),"",INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(RIGHT(Sheet2!$A$1:$D$10004,5)=RIGHT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),3)) & " - " & IF(ISERROR(INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),4)),"",INDEX(Sheet2!$A$1:$D$10004,SMALL(IF(LEFT(Sheet2!$A$1:$D$10004,5)=LEFT(Sheet1!$K$22,5),ROW($A$1:$D$10004)),ROW(1:1)),4))
所以当我执行搜索时,会显示结果
Supplier x - Manchester - V0001
我正在使用ROW()函数,因为我在工作表上的单独行中有许多这些公式,以返回多个搜索结果。
我也使用LEFT()函数来告诉它找到类似的结果而不是精确的,因为有人可能会输入'Hotel'而不是'Hotels'等。
我在表2中的数据如下所示:
Name Description Location Number
Supplier X Catering Manchester v0001
Supplier Y Hotels London v0002
Supplier Z Catering London v0003
所以,如果我在表格1的单元格K22中搜索餐饮,我会得到这样的结果:
Supplier X - Manchester - V0001
Supplier Z - London - V0003
但现在,如果我想在伦敦寻找餐饮供应商,我会再次获得相同的搜索结果:
Supplier X - London - V0001
Supplier Z - London - V0003
然而,它将供应商x的位置从曼彻斯特改为伦敦,即使在第2页的我的专栏数据中,供应商x的位置是曼彻斯特?
有人可以告诉我为什么会发生这种情况,因为它应该只返回与伦敦相邻位置匹配的供应商。
提前致谢,