Power Query按年月分组后统计当月Distinct工作日天数
在Power Query中统计分组年月的唯一工作日天数
核心问题分析
你用count distinct rows无效,大概率是没先筛选出工作日,或者直接对非日期列/未处理的列统计导致的。下面分两种场景给你具体操作步骤:
场景1:重新分组(同时实现求和+统计唯一工作日)
如果还没固定分组逻辑,直接按这个流程来:
提取年月列(若未存在)
在原始数据中新增自定义列,公式:= Date.Year([日期])*100 + Date.Month([日期])命名为
年月(比如2022年12月会显示为202212,方便分组匹配)筛选工作日行
新增自定义列判断是否为工作日(周一至周五):= Date.DayOfWeek([日期], Day.Monday) < 5命名为
是否工作日,然后筛选该列为true的行。如果需要排除节假日,可额外添加节假日列表匹配筛选。分组统计
点击开始选项卡的分组依据,设置:- 分组依据:选择你的
年月列 - 新增聚合项1:名称填你原有的求和变量名,操作选
求和,列选对应数值列 - 新增聚合项2:名称填
唯一工作日天数,操作选计数(不同),列选日期列
确认后即可得到同时包含求和结果和唯一工作日天数的分组表。
- 分组依据:选择你的
场景2:已有分组求和表,新增唯一工作日天数列
如果已经做好求和分组,按以下步骤合并数据:
生成工作日统计对照表
回到原始数据,按场景1的步骤1和2处理,得到筛选后的工作日数据,然后分组:- 分组依据:
年月列 - 聚合项:操作选
计数(不同),列选日期,命名为唯一工作日天数
得到仅包含年月和唯一工作日天数的对照表。
- 分组依据:
合并查询
切换到你的求和分组表,点击合并查询,选择刚生成的对照表,匹配条件选年月列,合并后展开唯一工作日天数列即可。
注意事项
- 确保你的
日期列是日期类型,如果是文本格式,先转成日期类型(转换→数据类型→日期),否则计数(不同)会识别错误。 - 如果你的工作日定义包含当地节假日,需要先整理节假日列表,再添加列排除这些日期。
内容的提问来源于stack exchange,提问作者Laura Marcela Rojas Díaz
相关产品推荐
相关产品推荐

