ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3180|回复: 7

[分享] 如何在表格中多条件查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-15 11:57 | 显示全部楼层 |阅读模式
详见附件。
1、使用match确定列号
2、使用lookup确定行号
3、使用index函数提取表格中的数据
4、表格中使用了数据验证,所以会有下拉框
5、尽量使用$a$2:$a$600,而不是a:a,后者数据查询数据多的话会比较慢,尽量减小查询的区间

多条件表格提取内容.zip

39.61 KB, 下载次数: 168

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-16 11:38 | 显示全部楼层
有的时候,也可以使用sumproduct来确定,详见附件

有的时候已知要查询所在的列号,如此例中想查询的是I列,注意给定区间,这里搜索区间为表格的第3行到第200行,可以根据实际区间进行更改,但不要写成I:I这种形式,速度会很慢

=SUMPRODUCT((内力最大!$B$3:$B$200=图!B3)*(内力最大!$C$3:$C$200=图!$F$2),内力最大!$I$3:$I$200)

=sumproduct((条件1)*(条件2)*...(条件n),查询所在的列)

这个其实是把满足条件1,条件2,到条件n的要查询列的值进行求和,但是这些条件足以确定一个值,因此给出的就是你想查询的那个值了


多条件表格查询内容sumproduct.zip

58.54 KB, 下载次数: 263

TA的精华主题

TA的得分主题

发表于 2019-8-21 10:07 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习了 谢谢楼主

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-28 16:14 | 显示全部楼层
dogingate 发表于 2019-8-16 11:38
有的时候,也可以使用sumproduct来确定,详见附件

有的时候已知要查询所在的列号,如此例中想查询的是I ...

另外一个例子,通过sumproduct函数来查找多列符合条件的值

汇总表.zip

10.33 KB, 下载次数: 55

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-28 23:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dogingate 发表于 2019-10-28 16:14
另外一个例子,通过sumproduct函数来查找多列符合条件的值

有的时候在想能不能交叉查询,强大的sumproduct果然可以,这个例子是论坛里的,感谢原作者的帮助,供大家学习

交叉查询.zip

19 KB, 下载次数: 32

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-30 10:36 | 显示全部楼层
dogingate 发表于 2019-10-28 23:18
有的时候在想能不能交叉查询,强大的sumproduct果然可以,这个例子是论坛里的,感谢原作者的帮助,供大家 ...

在此基础上改进了下,使用Indirect进行引用,就是更好用啊
=SUMPRODUCT((提取!C2=(INDIRECT(A2&"!$B$3:$B$300")))*(提取!D2=(INDIRECT(A2&"!$c$3:$c$300")))*(提取!E2=(INDIRECT(A2&"!$d$3:$d$300")))*(提取!B2=(INDIRECT(A2&"!$E$2:$J$2")))*(INDIRECT(A2&"!$E$3:$J$300")))

确定所在行的条件:(A2这个表中的B列=c2)*(A2这个表中的C列=d2)*(A2这个表中的D列=e2)
确定所在列的条件:(A2这个表中的2行=b2)
所要查询的区域:(A2这个表的e3:j300这个区域)

结果提取.zip

978.39 KB, 下载次数: 47

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-20 14:23 | 显示全部楼层
本帖最后由 dogingate 于 2019-11-21 15:39 编辑

补充以下,如果要进行交叉查询的话,比如3行5列的数据进行查询
,加上最左边列和最上边的行,应该是4行6列的数据
如果查询条件为左边列的第3个条件,顶行的第2个条件,进行公式求值就是
{0,0,1}*{0,1,0,0,0}计算得到{0,0,0,0,0;0,0,0,0,0;0,1,0,0,0},这也是一个3行5列的一个数组,和你要查询的数组是一样的维数
由于条件能够唯一确定一个值,也就是你想交叉的那个值,所在的位置是1,则取出该值


TIM图片20191121153519.png
TIM图片20191121153540.png

交叉查询.zip

6.58 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2021-5-30 13:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢楼主分享
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-3 00:03 , Processed in 0.045736 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表