ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 用VBA多条件筛选后匹配返回相应数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-2-25 00:51 | 显示全部楼层 |阅读模式
本帖最后由 hyjianjian 于 2016-2-25 00:56 编辑

各位大侠:
大家好!

sheet1   (原始数据表格) 列格式固定,第一行为标题行、第二行开始需获取最大行数。

sheet9  (汇总操作表格) 列格式固定,第一 二 三行为标题行、第四行开始需获取最大行数。(旧数据会隐藏))

工作簿打开时候切勿点击刷新数据,因连接SQL服务器。

操作内容:
1:  sheet1 C列  数值粘贴至 sheet9  B列最后行
2:    sheet1  H列 数值粘贴至 sheet9  G列最后行
3:  sheet1  M列 数值粘贴至 sheet9  I列最后行
4:  sheet1  Q列 数值粘贴至 sheet9  K列最后行
5:   sheet9  A 输入当前日期  格式为2/24
6:  sheet9 C.D.E.F.H.J.L.O.P.Q.R.S.T.U 列自动向下填充 (除  M.N列以外)
7:   sheet9  M列(返回相应日期)操作方式为: 以sheet9  B列数据 =left(对应行数 , 10) 向左取10位     去sheet11  C列匹配相符数据。会获得多条行数数据需再次判定筛选
返回行数内容条件判定:
sheet11    J列为日期时间   以当前系统为基准,大于或等于当前系统时间,选取最接近当前系统时间的行。
8:   sheet11   J列 日期  转换为  2/24  复制到  sheet9   M列
9:   sheet11   F列 复制到 sheet9 N列
sheet11      C列为匹配数据( 与sheet9 B列数据相匹配)        J列为日期(返回sheet9   M列日期)   F列为数量(返回sheet9 N列的数值)
完成上述操作后,需对sheet9 所以单元格执行所有框线操作,且sheet9  A列小于当前系统日期整行隐藏掉(旧数据隐藏,只显示A列当前日期数据)


附件有模拟案例 。(请将系统时间调整为2/24 )
另:附件数据太大,我已转换成.xlsb 二进制格式。写VBA代码时敬请兼容2003版本



求助.rar

1.54 MB, 下载次数: 82

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-25 12:13 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-26 07:26 来自手机 | 显示全部楼层
sheet11      C列为匹配数据( 与sheet9 B列数据相匹配)        J列为日期(返回sheet9   M列日期)   F列为数量(返回sheet9 N列的数值)

TA的精华主题

TA的得分主题

发表于 2016-2-26 09:36 | 显示全部楼层
工件表“部品在库确认表”中不是有公式吗?哪里出现问题?要解决什么?
看附件好像与另一帖子提出的问题“工作簿1 sheet2 B列数值不正确!”不挂钩?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-26 10:18 来自手机 | 显示全部楼层
山菊花 发表于 2016-2-26 09:36
工件表“部品在库确认表”中不是有公式吗?哪里出现问题?要解决什么?
看附件好像与另一帖子提出的问题“ ...

之前问题解决了,此附件返回sheet9   M列日期)   sheet9 N列的数值  不知道如何解决。麻烦你看看。例子有案例

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-26 10:23 来自手机 | 显示全部楼层
山菊花 发表于 2016-2-26 09:36
工件表“部品在库确认表”中不是有公式吗?哪里出现问题?要解决什么?
看附件好像与另一帖子提出的问题“ ...

当前系统为基准,条件:大于或等于当前系统时间,(出行多个)选取最接近当前系统时间的行。

TA的精华主题

TA的得分主题

发表于 2016-2-26 10:34 | 显示全部楼层
你的意思是当前表M列要用公式从“订余”表中获得?

sheet9  M列(返回相应日期)操作方式为: 以sheet9  B列数据 =left(对应行数 , 10) 向左取10位     去sheet11  C列匹配相符数据。会获得多条行数数据需再次判定筛选返回行数内容条件判定:
sheet11    J列为日期时间   以当前系统为基准,大于或等于当前系统时间,选取最接近当前系统时间的行。


确定行之后,返回哪列的值?“次回纳入予定日”好似天书,理解不了,与“订余”表的英文字段没办法关联。这就是我那个帖子说的会让人望而却步的原因,你很清楚它,而外行人使劲猜也猜不到。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-26 11:22 来自手机 | 显示全部楼层
山菊花 发表于 2016-2-26 10:34
你的意思是当前表M列要用公式从“订余”表中获得?



当前表M列日期,N列数量要用从“订余”表中获得。次回就说说下次日期。根据当前表B列去订余C列匹配。  大于当前系统时间且最接近当前系统时间(订余J列)      返回J列      以及F列数值

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-26 11:24 来自手机 | 显示全部楼层
山菊花 发表于 2016-2-26 10:34
你的意思是当前表M列要用公式从“订余”表中获得?



sheet11   J列 日期      F列为数量      C列匹配数值

TA的精华主题

TA的得分主题

发表于 2016-2-26 12:03 | 显示全部楼层
再问两个不明白的问题:
1、“订余”表J列的数据(9位数)不是日期,如何取舍?该列可不可以使用日期格式,如同“部品在库确认表”M列一样?
2、“订余”表C列数据长度不是10,如何比较?看是否包含?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 05:17 , Processed in 0.037378 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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