ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 使代码能够忽略数据区域中间的空白单元格进行计算

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-9 01:23 | 显示全部楼层
lss001 发表于 2018-9-8 23:32
11楼代码已经验证可行!
用27楼提供附件测试→

老师:就以27楼附件,11楼代码为例:
1.在G73589:G3590里输入2【0、1、2可以随便输】,则G列最后行号是G73590.  最后周期的数据个数应该为2个。其公式是:=MOD(G3-4【表头占用行数】,K1)     也就是 =MOD(73590-4,9)=2


2.在I5:I11980里输入区域数组公式 {  =COUNTIFZQ(COUNTIFZQ!$G$5:$G$100000,$K$1,I$4,1)  ,右拉到K列;则最后一个周期里,I8181显示0,J8181显示0,K8181显示1,SUM(I8181:K8181)=1,而最后一个周期对应的数据区域是G73589:G73597,里面有G73589:G3590里输入的两个2

  这样看来,K8181应该为2才对,但显示的结果为1,是不是少统计了最后G73590里的那个2.

请您看一下下边的附件就明白了: 按指定周期 忽略空格 的条件计数 lss001 .zip (574.82 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2018-9-9 08:17 来自手机 | 显示全部楼层
玉阳山人 发表于 2018-9-9 01:23
老师:就以27楼附件,11楼代码为例:
1.在G73589:G3590里输入2【0、1、2可以随便输】,则G列最后行号是G ...

If i = UBound(arr) - k + 1 Then Exit For少了+1
→11楼已经更新代码!

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-9 08:26 | 显示全部楼层
lss001 发表于 2018-9-9 08:17
If i = UBound(arr) - k + 1 Then Exit For少了+1
→11楼已经更新代码!

嗯。这次完全正确了!再次感谢老师的耐心帮忙!

TA的精华主题

TA的得分主题

发表于 2018-9-9 15:04 来自手机 | 显示全部楼层
本帖最后由 lss001 于 2018-9-9 15:09 编辑

ok!!!!!!!!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-10 13:13 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-10 17:03 | 显示全部楼层
本帖最后由 13782671637 于 2018-9-10 17:06 编辑
lss001 发表于 2018-9-10 13:13
简化代码!!!
Function COUNTIFZQ(qy As Range, zq, tj, Optional x = 0)
     Application.Volatile

老师:把45楼的代码复制进附件后,如果指定K1为13,在I5:I11980输入公式:=COUNTIFZQ(COUNTIFZQ!$G$5:$G$100000,$K$1,I$4,1),右拉至K后,I5665:K5665之和应该等于H3才对。

按指定周期 忽略空格 的条件计数 lss001 .zip (578.97 KB, 下载次数: 11)


TA的精华主题

TA的得分主题

发表于 2018-9-10 20:43 来自手机 | 显示全部楼层
本帖最后由 lss001 于 2018-9-10 21:09 编辑

应把If i = k - qy.Row - 1 Then Exit For中
-1改为+2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-10 21:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lss001 发表于 2018-9-10 20:43
应把If i = k - qy.Row - 1 Then Exit For中
-1改为+2

正在全面测试 验证。

TA的精华主题

TA的得分主题

发表于 2018-9-10 21:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lss001 发表于 2018-9-10 13:13
简化代码!!!
Function COUNTIFZQ(qy As Range, zq, tj, Optional x = 0)
     Application.Volatile

45楼的新代码反复验证后准确无误!谢谢老师!

老师:实际工作表里,类似附件G列的数据源有好几列,并且里面的不重复数据个数也不相同,都需要按周期进行条件计数。计算结果存放在另一个工作表里。遇到这种情况,自定义函数和sub过程哪个更快捷方便?

TA的精华主题

TA的得分主题

发表于 2018-9-10 22:09 来自手机 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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