ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 多条件查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-18 12:57 | 显示全部楼层 |阅读模式
本帖最后由 lsgr 于 2024-3-18 13:46 编辑

使用Filter时有多个查询条件,但是当某个条件为空时希望能视同条件满足,需要如何解决。




多条件查询.rar

9.92 KB, 下载次数: 31

多条件查询

TA的精华主题

TA的得分主题

发表于 2024-3-18 13:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 hxj119 于 2024-3-18 13:11 编辑

增加一个OR函数,类似这样:OR(区域1=条件,区域1="")
这样修改:
OR(表1[[#全部],[条件1]]=查询!B1,B1="")

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 13:09 | 显示全部楼层
本帖最后由 lsgr 于 2024-3-18 13:48 编辑
hxj119 发表于 2024-3-18 13:02
增加一个OR函数,类似这样:OR(区域1=条件,区域1="")

没有解决啊,这样设置的条件是错误值

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 13:48 | 显示全部楼层
hxj119 发表于 2024-3-18 13:02
增加一个OR函数,类似这样:OR(区域1=条件,区域1="")
这样修改:
OR(表1[[#全部],[条件1]]=查询!B1,B1 ...

没有解决啊,这样设置的条件是错误值

TA的精华主题

TA的得分主题

发表于 2024-3-18 14:14 | 显示全部楼层
  1. =INDEX(基础数据!A:A,AGGREGATE(15,6,ROW(基础数据!$2:16)/1%%^(MMULT((基础数据!$B$2:$G16=T(OFFSET($A$1,,{1,3,5,7,9,11})))*1,{1;1;1;1;1;1})<>SUM(COUNTIF(OFFSET($A$1,,{1,3,5,7,9,11}),"<>"))),ROW(A1)))&""
复制代码
右拉下拉

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 14:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我现在是通过辅助列+FILTER函数实现的,不想用INDEX函数,因为基础数据有几千行,不确定筛选数据有多少行。

TA的精华主题

TA的得分主题

发表于 2024-3-18 15:27 | 显示全部楼层
=FILTER(基础数据!$A$2:$H$15,(基础数据!$B$2:$B$15=B1)*(基础数据!$C$2:$C$15=D1)*(基础数据!$D$2:$D$15=F1)*(此处有多少条件按前面格式写就是了))

TA的精华主题

TA的得分主题

发表于 2024-3-18 15:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
FILTER(基础数据!H2:H15,MMULT(N(基础数据!B2:G15={"Y","N","Y","Y","Y","Y"}),ROW(1:6)^0)=6)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 16:00 | 显示全部楼层
假设有ABC3个条件判断,
如果A为空,判断B*C,
如果B为空,判断A*C,
如果C为空,判断A*B,
如果A、B为空,判断C,以此类推;
如果都为空,则为空;
如果都不为空,则判断A*B*C。

TA的精华主题

TA的得分主题

发表于 2024-3-18 16:02 | 显示全部楼层
本帖最后由 weiguidun 于 2024-3-18 16:14 编辑

=FILTER(表1[#全部],(IF(ISBLANK(B1),表1[[#全部],[条件1]]<>"",表1[[#全部],[条件1]]=查询!B1))*IF(ISBLANK(D1),表1[[#全部],[条件2]]<>"",表1[[#全部],[条件2]]=查询!D1)*(...),"")

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 16:48 , Processed in 0.041748 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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