ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 创建 多条件查询的自定义函数

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 14:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

老师:由于下面的问题是自定义函数DTJCX查询提取并计算功能的延续,所以采用了增加第六、第七参数拓展的方法--等于在全盘保留DTJCX原代码计算功能的前提下,增加两个参数,便能直接计算D:G列需要解决的问题。具体说明和要求在J5:J86里。又得让老师费心了!
遗漏分区和剩余期数.zip (1.74 MB, 下载次数: 23)




TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 18:04 | 显示全部楼层

恳请老师帮忙解决31楼里的自定义函数计算功能拓展的问题。

TA的精华主题

TA的得分主题

发表于 2018-11-17 20:14 来自手机 | 显示全部楼层
本帖最后由 lss001 于 2018-11-18 21:44 编辑

请重新下载附件!

遗漏分区和剩余期数 (1).zip

1.5 MB, 下载次数: 44

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 21:34 | 显示全部楼层
本帖最后由 WYS67 于 2018-11-17 21:40 编辑
lss001 发表于 2018-11-17 20:14
请重新下载附件!

20181117213332.png

老师:麻烦您看看是什么原因,导致代码在《DTJCX功能拓展》里能够显示正确结果,但在《总表》的L5:AO31里却全部显示空白啊?

遗漏分区和剩余期数 (3).zip (1.6 MB, 下载次数: 26)


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 22:14 | 显示全部楼层
本帖最后由 WYS67 于 2018-11-17 22:25 编辑
lss001 发表于 2018-11-17 20:14
请重新下载附件!

20181117215211.png

老师:已找到原因,把K5:K31的指定次序升序排列就能显示计算结果。
   可是,怎样才能使:第四参数为0【自上而下地提取符合条件的J列数据】,或为1【自下而上地提取符合条件的J列数据】时,无论第五参数【指定次序】在行列中升序还是降序排列,都能同步呢?
   许多时候,指定次序必须要按降序排列才能符合统计要求,也就是:如果以K5为原点,指定次序是需要向下或向右降序排列的。
能不能设置:当第四参数查找顺序为“0”或“1”时,以第三参数数据区域最上边或最下边那个符合条件的数据为次序开始1,按照第五参数次序区域的指定次序自动匹配?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 22:32 | 显示全部楼层
lss001 发表于 2018-11-17 22:28
K列次序反了,应该是正序,不是反序!

老师:35楼里已找出原因。能不能修改代码,当第四参数查找顺序为“0”或“1”时,以第三参数数据区域最上边或最下边那个符合条件的数据为次序开始1,按照第五参数次序区域指定顺逆次序自动匹配

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 22:49 | 显示全部楼层
lss001 发表于 2018-11-17 22:40
已经有自下而上,自上而下了!

老师:其实最上边的数据【第四参数查找顺序为“0”】价值不大,只是用于统计罢了。

    反倒是最下边的数据【第四参数查找顺序为“1”】近百期数据特别重要!正序、反序提取对于统计和预测,都有特别的用途!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 22:54 | 显示全部楼层
lss001 发表于 2018-11-17 22:40
已经有自下而上,自上而下了!
第四参数为0→自上而下!
第四参数为1→自下而上!

老师:能不能修改代码,当第四参数查找顺序为“0”或“1”时,以第三参数数据区域最上边或最下边那个符合条件的数据为次序开始1,按照第五参数次序区域指定的顺逆次序自动匹配?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-17 23:18 | 显示全部楼层
lss001 发表于 2018-11-17 22:40
已经有自下而上,自上而下了!
第四参数为0→自上而下!
第四参数为1→自下而上!

老师:31楼里指定次序为单值的用途也很广。最好保留指定次序为单值【不是区域】时,求B:G列各项计算结果这一功能。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-18 13:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 WYS67 于 2018-11-18 17:31 编辑
lss001 发表于 2018-11-17 20:14
请重新下载附件!

老师:今早下载后,经过反复测试,发现计算结果不正确。原因是:如《总表》O5:O27所示,公式提取的指定号码566最后27期的遗漏期数不正确,其正确的计算结果应该是《总表》K:M里L列所显示的。看来是自定义函数DTJCX原代码计算功能不适合拓展遗漏分区和剩余期数的缘故
   经过多次验证,发现用自定义函数WZTJTQ的代码拓展遗漏分区和剩余期数最合适不过!《WZTJTQ代码》里有详细的说明、语法和实例,《WZTJTQ功能拓展》的B:C列是指定号码144的顺排和定位遗漏期数,《总表》K:M列分别是指定号码566的遗漏期数、遗漏分区和剩余期数。

《WZTJTQ代码》里G39:G126里有自定义函数WZTJTQ的代码。
恳请老师按照WZTJTQ代码的计算功能拓展代码。如果您觉得WZTJTQ代码不符合您的编写习惯,也可以重新编写,只需要全部保留WZTJTQ代码原有的计算功能,并且拓展遗漏分区和剩余期数就行!

20181118131018.png              WZTJTQ计算功能拓展.zip (1.69 MB, 下载次数: 16)
老师:您也可以继续使用33楼附件,按《总表》N列的指定次序,自下而上地提取指定号码的遗漏期数【指定号码566的提取结果应该与《总表》K5:531K5:K31完全相同才对】!
问题就出现在指定号码的遗漏期数没有按指定次序提取这一关键所在上
41楼前两个工作表的B:C列里有求指定次序遗漏期数的通用的内置函数数组公式!
{ =IFERROR(IF(B$4=0,INDEX(总表!$J:$J,SMALL(IF((总表!$I$5:$I$35104&""=$C$1&"")*(总表!$J$5:$J$35104<>""),ROW($5:$35104)),$A26)),INDEX(总表!$J:$J,LARGE(IF((总表!$I$5:$I$35104&""=$C$1&"")*(总表!$J$5:$J$35104<>""),ROW($5:$35104)),$A26))),"")
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 21:55 , Processed in 0.026424 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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