ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 按指定周期对总表里的多列数据进行计数统计

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 04:48 | 显示全部楼层
lss001 发表于 2018-9-13 22:25
附件已传请下载试试!

补充:当《1》、《2》的周期选择H3指定为0时,没有把《总表》最后那个周期的数据统计并显示出来;而当《1》、《2》的周期选择H3指定为1时,没有把《总表》最后n行数据统计进去【就是最后一个周期的统计总是缺少了n个数据】

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 08:27 | 显示全部楼层
本帖最后由 13782671637 于 2018-9-14 11:15 编辑

老师:您写的代码基本上实现了我的设想。运行速度很快!我真是坐井观天了,没想到VBA的功能这么强大!
经测试,需要修改之处:
      1.《总表》H1指定的最大行号也应该是个变量,可以是15460,也可以是200000,这样可以灵活地根据工作簿中数据的多少,确定需要计算的工作量;而代码把《总表》的H1当作定量写进了代码,只能计算15460行以内的数据;而无法执行超过15460行的计算。
      2.统计表《1》、《2》中,当《总表》的数据总数恰好是《1》、《2》H2指定周期行数的整倍数时,J列以后显示的结果少了最后一行【整倍数的情况下,无论H3指定0或1,其显示的计算结果都应该是一样才对】。
      3.当《1》、《2》的周期选择指定为1时,没有把《总表》最后n行数据统计进去【就是最后一个周期的统计总是缺少了n个数据】。
      4.您是怎样把《2》中的A:D列隐藏了的?我试过多种方法,都不能取消A:D列的隐藏。《总表》和各分表都必须保留A:D这四列,因为里面将来要输入对应和参照数据的。
      5.0~9开头的统计工作表,在最大行号6565下面,添加了二次统计表格,所以输出结果必须控制在每个统计表中指定的 5:最大行号 范围内。
      6.修改条件计数工作表的命名规则。工作簿里,以数字0~9作为表名开头的工作表被用于条件计数专用统计表。为了一目了然,容易分辨,表名的后面会有显示表中主要内容的后缀。如  0 号码遗漏 ,1 中位号、数型  ,2 重号和连号......在代码里设置为--只要开头是 0~9数字命名的工作表,无论是两个、三个、五个,都属于统计表,只要里面的第二、三行输入需要计算的表名和列标,点击《总表》里的COUNTIFZQ按钮,就会自动执行所有统计表里的计数统计。

        我试着把《2》里的AB:AG列的1:4行复制粘贴进《1》里的BO:BT,点击《总表》里的COUNTIFZQ按钮后,发现BO5:BT5下面,并没有显示相应的计算结果。

      于是我想:能不能在代码里,用两、三个For循环,预先设定开头是0~9命名的十个统计表,每个统计表里都可以对十个项目进行计数统计,而每个项目下面可以容纳100个不重复数据;如果实际工作表只有   0 号码遗漏 ,1 中位号、数型  ,2 重号和连号    这三个,运行到第四个时则自动跳出循环;对每个统计表里的十个项目和100个不重复数据也照此循环。那么,这个嵌套的循环,就可以对10*10 *100一万个不重复数据进行计数统计。

老师:我前些年用过卡西欧编程计算器,它编程语言里就有母子循环。就是不知EXCEL VBA能不能实现?

    我对VBA是个门外汉,以上想法,很可能纯属无知和异想天开,让老师看笑话了。以下是修订后的附件,恳请老师修改和完善代码。

    按指定周期进行条件计数的代码.zip (1.14 MB, 下载次数: 2)





TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 08:28 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 11:20 | 显示全部楼层
lss001 发表于 2018-9-13 22:25
附件已传请下载试试!

老师:恳请按照12楼要求修改代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 16:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-14 18:01 | 显示全部楼层
按指定周期进行条件计数的代码.zip (904.78 KB, 下载次数: 10)



评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-14 18:02 来自手机 | 显示全部楼层
13782671637 发表于 2018-9-14 16:22
恳请老师帮忙。

附件见上楼!!!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 19:22 | 显示全部楼层
本帖最后由 13782671637 于 2018-9-14 19:50 编辑
lss001 发表于 2018-9-14 18:02
附件见上楼!!!

老师:12楼2、3项列出的问题没有解决了,现在还存在:
      2.统计表《1》、《2》中,当《总表》的数据总数恰好是《1》、《2》H2指定周期行数的整倍数时,J列以后显示的结果少了最后一行【整倍数的情况下,无论H3指定0或1,其显示的计算结果都应该是一样才对】。
      3.当《1》、《2》的周期选择指定为1时,没有把《总表》最后n行数据统计进去【就是最后一个周期的统计总是缺少了n个数据】。说n是不确定,随着H2指定的间隔行号的改变,少的数据有时多有时少。《1》、《2》、《3》的C3是最后一个周期的数据总数,E3是无论H3是0是1,最后一个周期的所在行号。您可以更改H2:H3的数字,测试一下就明白了!

     我把《2》的A:L列复制到《3》的对应位置,点击《总表》宏按钮后,发现《3》E:I列与右边显示不同步,无法刷新数据。

     再有,12楼我提到的5、6两项您是怎么处理的?统计表表名《1》改为《1 结构》后无法运行代码。

    按指定周期进行条件计数的代码.zip (921.35 KB, 下载次数: 2)


TA的精华主题

TA的得分主题

发表于 2018-9-14 20:20 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lss001 于 2018-9-15 00:01 编辑

还是下载下楼附件更好!!!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 20:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lss001 发表于 2018-9-14 20:20
把If i = Ubound (arr) - k + 1
改为If i = Ubound (arr) - k + 2

20180914202859.png 老师:按您的吩咐修改了,还是不行啊!左边是H3指定为0时显示的计算结果,明显看出J16:AN16这一行没有显示最后一个周期的计算结果;再看下面是H3指定为1时显示的计算结果: 20180914203347.png

最后一行J:L的和应该是84,可是J16的2+K16的40+L16的41,2+40+41=83,怎么不是84啊?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 14:15 , Processed in 0.027196 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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