ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 新人求助,如何求每日平均工作员工数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-30 14:27 | 显示全部楼层 |阅读模式
本帖最后由 manione 于 2018-12-30 14:31 编辑

大家好,我有一份每日工作记录表,求得每日平均工作人数
逻辑就是每个日期号中提交人员计数的不重复数值
日期
提交人员
2018年12月1日
A
2018年12月1日
B
2018年12月1日
A
2018年12月1日
A
2018年12月1日
C
2018年12月1日
A
2018年12月1日
B
2018年12月1日
D
2018年12月1日
G
2018年12月1日
D
2018年12月1日
B
2018年12月1日
C
2018年12月1日
B
2018年12月1日
Y
2018年12月1日
C
2018年12月1日
I
2018年12月1日
D
2018年12月2日
C
2018年12月2日
A
2018年12月2日
D
2018年12月2日
A
2018年12月2日
B
2018年12月2日
A
2018年12月2日
D
2018年12月2日
G

TA的精华主题

TA的得分主题

发表于 2018-12-31 10:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-12-31 16:10 | 显示全部楼层
  1.   Dim conn As New ADODB.Connection
  2.   conn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  3.   Range("d2").CopyFromRecordset conn.Execute("select 日期,count(提交人员) from (select DISTINCT * from [sheet1$]) group by 日期;")
  4.   conn.Close: Set conn = Nothing
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-31 18:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-12-31 21:28 | 显示全部楼层

Dim conn As New ADODB.Connection
'ado连接,先要对ado进行引用,编程界面--工具--引用--选中某ado--确定。
  conn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
'打开与自己工作簿的连接,也就是ado访问自己,HDR=yes,第一行是标题
  Range("d2").CopyFromRecordset conn.Execute("select 日期,count(提交人员) from (select DISTINCT * from [sheet1$]) group by 日期;")
'这是关键一句:将ado查询的结果复制到以d2单元格为起点的单元格区域。
"select 日期,count(提交人员) from (select DISTINCT * from [sheet1$]) group by 日期;"  这是查询语句
select DISTINCT * from [sheet1$]  去掉重复,同时又作为外查询的数据源
整句的意思:无重复的以日期分组,统计提交人员的人数
  conn.Close: Set conn = Nothing
关闭连接。
将成品文件发给你。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-1 00:06 | 显示全部楼层
liangmutou01 发表于 2018-12-31 21:28
Dim conn As New ADODB.Connection
'ado连接,先要对ado进行引用,编程界面--工具--引用--选中某ado-- ...

非常感谢,我梳理一下逻辑

TA的精华主题

TA的得分主题

发表于 2019-1-1 12:35 | 显示全部楼层

Dim conn As New ADODB.Connection
'ado连接,先要对ado进行引用,编程界面--工具--引用--选中某ado--确定。
  conn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
'打开与自己工作簿的连接,也就是ado访问自己,HDR=yes,第一行是标题
  Range("d2").CopyFromRecordset conn.Execute("select 日期,count(提交人员) from (select DISTINCT * from [sheet1$]) group by 日期;")
'这是关键一句:将ado查询的结果复制到以d2单元格为起点的单元格区域。
"select 日期,count(提交人员) from (select DISTINCT * from [sheet1$]) group by 日期;"  这是查询语句
select DISTINCT * from [sheet1$]  去掉重复,同时又作为外查询的数据源
整句的意思:无重复的以日期分组,统计提交人员的人数
  conn.Close: Set conn = Nothing
关闭连接。
将成品文件发给你。

记数.rar

13.72 KB, 下载次数:

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-1 13:56 | 显示全部楼层
liangmutou01 发表于 2019-1-1 12:35
Dim conn As New ADODB.Connection
'ado连接,先要对ado进行引用,编程界面--工具--引用--选中某ado-- ...

您好,可以通过POWER BI里的度量值或者新建列直接实现吗,因为每天记录数据量较大

TA的精华主题

TA的得分主题

发表于 2019-1-1 17:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-1 19:56 来自手机 | 显示全部楼层
具体操作:不打开被统计的工作簿
数据→新建查询→从文件、从工作簿→记数(被统计工作簿)→sheet1→编辑→将第1列转换为日期→分组依据→选日期、非重复行计数→确定→关闭并上载。
就在一张新的工作表里有查询结果了,以后只要原工作簿的数据有变化,只要在查询表里更新数据就可以了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-24 22:46 , Processed in 0.048830 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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