|
楼主 |
发表于 2018-11-18 13:22
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 WYS67 于 2018-11-18 17:31 编辑
老师:今早下载后,经过反复测试,发现计算结果不正确。原因是:如《总表》O5:O27所示,公式提取的指定号码566最后27期的遗漏期数不正确,其正确的计算结果应该是《总表》K:M里L列所显示的。看来是自定义函数DTJCX原代码计算功能不适合拓展遗漏分区和剩余期数的缘故。
经过多次验证,发现用自定义函数WZTJTQ的代码拓展遗漏分区和剩余期数最合适不过!《WZTJTQ代码》里有详细的说明、语法和实例,《WZTJTQ功能拓展》的B:C列是指定号码144的顺排和定位遗漏期数,《总表》K:M列分别是指定号码566的遗漏期数、遗漏分区和剩余期数。
《WZTJTQ代码》里G39:G126里有自定义函数WZTJTQ的代码。
恳请老师按照WZTJTQ代码的计算功能拓展代码。如果您觉得WZTJTQ代码不符合您的编写习惯,也可以重新编写,只需要全部保留WZTJTQ代码原有的计算功能,并且拓展遗漏分区和剩余期数就行!
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))),"")
|
|