五维思考

学习要加,骄傲要减,机会要乘,懒惰要除。 http://www.5dthink.cn

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

如下图所示,要求根据设备分类和品牌来查找相应的销售数量。

1. 使用VLOOKUP+辅助列进行多条件查找

本例采用的方法是在原表的最前面加一辅助列,辅助列的公式为:=B2&C2

然后再采用VLOOKUP进行如下查找:=VLOOKUP(F2&G2,A:D,4,0)

这里所采用的方法其实就是把多条件进行合并,将其转换为单条件查找。

2. VLOOKUP函数的数组多条件查找

本例使用了数组公式:=VLOOKUP(E2&F2,IF({1,0},A2:A7&B2:B7,C2:C7),2,0)

公式中的IF({1,0},A2:A7&B2:B7,C2:C7)是一个数组公式,它的返回值为:{"电脑ThinkPad",1760;"手机华为",2938;"iPad苹果",1731;"电脑苹果",1460;"手机三星",2039;"手机VIVO",1629},这其实也是把多条件通过内存数组合并为一个条件来进行查找。

3. 使用SUM进行多条件查找

SUM是求和公式,但在本例中用它来进行查找。

这是一个数组公式:=SUM((A2:A7=E2)*(B2:B7=F2)*C2:C7),按CTRL + SHIFT +ENTER完成输入。

这里是使用了数组公式的相乘功能来变相实现查找功能。数组公式中的(A2:A7=E2)*(B2:B7=F2)*C2:C7返回值为:

{1;0;0;1;0;0}*{1;0;0;0;0;0}*{1760;2938;1731;1460;2039;1629},它们的返回值是1760。

4. 使用SUMPRODUCT进行多条件查找

SUMPRODUCT返回数组乘积之和,所用公式如下所示:

=SUMPRODUCT((A2:A7=E2)*(B2:B7=F2)*C2:C7),它的实现原理和上面的SUM函数类似。

5. LOOKUP的多条件查找

LOOKUP的万金油查找公式完全可以实现多条件查找:=LOOKUP(1,0/((A2:A7=E2)*(B2:B7=F2)),C2:C7)

6. VLOOKUP和CHOOSE函数组合

VLOOKUP和CHOOSE函数组合为数组公式进行查询:=VLOOKUP(E2&F2,CHOOSE(TRANSPOSE(ROW(1:2)),A2:A7&B2:B7,C2:C7),2,0)

输入CTRL + SHIFT + ENTER完成输入。

TRANSPOSE形成一个"1行2列"的内存转置数组,里面的内容是:

{"电脑ThinkPad",1760;"手机华为",2938;"iPad苹果",1731;"电脑苹果",1460;"手机三星",2039;"手机VIVO",1629}

这也相当于变相将多条件转换为单条件,从而实现查询效果。

综上几种方法,大都是利用函数转换的方法,将多条件查询转为单条件,从而实现查询功能。

posted on 2018-12-12 11:20  五维思考  阅读(75053)  评论(0编辑  收藏  举报

QQ群:1. 全栈码农【346906288】2. VBA/VSTO【2660245】