Power BI考勤报表开发求助:累计出勤天数计算逻辑问题
Power BI 实现出勤累计天数递增方案
方法一:使用CALCULATE + COUNTROWS实现
在Power BI数据视图中,为考勤表新建计算列,通过统计当前人员在当前日期及之前的出勤记录总数,得到累计出勤天数:
Days attended = CALCULATE( COUNTROWS('考勤表'), ALLEXCEPT('考勤表', '考勤表'[人员编号]), '考勤表'[出勤日期] <= EARLIER('考勤表'[出勤日期]) )
公式说明:
ALLEXCEPT('考勤表', '考勤表'[人员编号]):仅保留当前人员的筛选范围,排除其他人员的数据干扰EARLIER('考勤表'[出勤日期]):获取当前行的出勤日期,作为统计的截止日期COUNTROWS:统计符合条件的出勤记录数量,即该员工到当前日期为止的累计出勤天数
方法二:使用RANKX函数排名实现
通过对同一员工的出勤日期进行升序排名,排名值即为累计出勤天数,同样新建计算列:
Days attended = RANKX( FILTER('考勤表', '考勤表'[人员编号] = EARLIER('考勤表'[人员编号])), '考勤表'[出勤日期], , ASC, DENSE )
公式说明:
FILTER('考勤表', '考勤表'[人员编号] = EARLIER('考勤表'[人员编号])):筛选出当前员工的所有出勤记录RANKX:按出勤日期升序排序,DENSE参数确保排名连续;若需将同一天多次出勤算多天,可去掉DENSE参数
注意事项
- 确保「人员编号」列能唯一标识每个员工,避免统计混乱
- 「出勤日期」列需设置为日期/时间格式,不能是文本格式,否则无法正确排序统计
- 若存在同一天同一员工多条出勤记录,可根据业务需求调整统计逻辑
内容的提问来源于stack exchange,提问作者SUMAN NUTAKKI
相关产品推荐
相关产品推荐

