五维思考

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

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  416 随笔 :: 0 文章 :: 128 评论 :: 151万 阅读

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

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   五维思考  阅读(76957)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix

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

点击右上角即可分享
微信分享提示

目录导航