以> =和<=作为条件的INDEX MATCH不返回正确的值

时间:2018-09-05 18:10:42

标签: excel excel-formula

输入以下代码后,我将使用以下代码查找地址并返回Sheet2上的E列:

=INDEX('Sheet2'!$A$1:$N$7755,MATCH(1,('Sheet2'!A:A=$C$4)*('Sheet2'!B:B=$I$4)*('Sheet2'!F:F=$G$4)*('Sheet2'!$C$2:$C$7755<=$B$4)*('Sheet2'!$D$2:$D$7755>=$B$4),0),5)

在Sheet2上,A是街道名称,B是邮政编码,F是城市,C是该街区的最低地址,D是该街区的最高地址。

A       B       C   D   E   F
1ST ST  12345   100 399 N   City1
1ST ST  12346   100 299 N   City2
1ST ST  12347   101 522 N   City3
1ST ST  12347   600 899 E   City3

但是,当我使用此选项时,搜索650 1st St,City3 12347将返回N而不是E(试图获得第5列)。

这似乎是公式的> =和<=部分的一个问题,但是我不确定。有人看到导致问题的原因吗?

1 个答案:

答案 0 :(得分:3)

请注意INDEX/MATCH中使用的范围。 AFAIK,范围应全部相同。

有两种解决方法,请选择以下内容。

=INDEX('Sheet2'!$A$2:$N$7755,MATCH(1,('Sheet2'!A$2:A$7755=$C$4)*('Sheet2'!B$2:B$7755=$I$4)*('Sheet2'!F$2:F$7755=$G$4)*('Sheet2'!$C$2:$C$7755<=$B$4)*('Sheet2'!$D$2:$D$7755>=$B$4),0),5)

=INDEX('Sheet2'!$A:$N,MATCH(1,('Sheet2'!A:A=$C$4)*('Sheet2'!B:B=$I$4)*('Sheet2'!F:F=$G$4)*('Sheet2'!$C:$C<=$B$4)*('Sheet2'!$D:$D>=$B$4),0),5)

(我个人建议 使用完整的列引用,因为这样做(尤其是两列以上)会降低公式/工作表的速度)