Excel公式技巧80:多条件查找值

excelperfect

我们经常会碰到要查找满足多个条件的值,如下图1所示,想要查找以“凉”开头且价格高于20的商品。

图1

根据前两篇文章中学到的技巧,使用INDEX/MATCH函数组合来完成。在单元格E3中的数组公式如下:

=INDEX(表1[商品],MATCH(1,(表1[价格]>E1)*(LEFT(表1[商品],1)='凉'),0))

结果如下图2所示。

图2

公式中使用了逻辑运算:

(表1[价格]>E1)*(LEFT(表1[商品],1)='凉')

生成数组:

{0;0;0;0;0;0;0;0;0;1;0}

其中,1表示价格大于指定值且名称以指定字开头的商品,0表示不满足条件的商品。

上述数组作为MATCH函数的参数,查找1出现的位置:

MATCH(1,{0;0;0;0;0;0;0;0;0;1;0},0)

即满足条件的商品的位置:

10

代入INDEX函数中:

=INDEX(表1[商品],10)

返回值:

凉垫

小结:

1. 巧妙构造MATCH函数的参数以查找值的位置

2. 使用逻辑与运算来生成数组,运算后TRUE/FALSE值转换成1/0,且1占据同时满足条件的数值所在的位置。

(0)

相关推荐