excel:使用INDEX查找值

时间:2014-10-19 10:17:02

标签: excel lookup

我使用以下公式索引工作表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的位置是曼彻斯特?

有人可以告诉我为什么会发生这种情况,因为它应该只返回与伦敦相邻位置匹配的供应商。

提前致谢,

0 个答案:

没有答案