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)