PowerBI中如何按月初首个阶段统计月度项目数量?
解决项目月度阶段统计重复问题:仅统计月初所处阶段
方法一:Power Query预处理数据(推荐)
没必要拆分每一天的数据,直接定位每个项目在目标月初当天所处的阶段即可:
- 添加自定义列,判断当前阶段是否包含目标月初日期(以2022年8月1日为例):
把这个列命名为= [Start] <= #date(2022,8,1) and [Finish] >= #date(2022,8,1)IsInTargetMonthStart - 筛选出
IsInTargetMonthStart值为true的行 - 按
Project ID去重(一个项目只会有一个阶段覆盖月初当天) - 用处理后的数据集做条形图,就不会出现重复统计的问题了
如果需要批量处理多个月份,可以把目标日期做成参数:
- 创建参数
TargetMonthStart,类型设为日期 - 把自定义列公式改成:
之后修改参数就能切换不同月份的统计。= [Start] <= TargetMonthStart and [Finish] >= TargetMonthStart
方法二:DAX度量值动态统计
如果不想修改原始数据集,直接用DAX写度量值来计算:
项目数(月初阶段)= VAR TargetDate = DATE(2022,8,1) -- 这里可以替换成你需要的月初日期 RETURN CALCULATE( DISTINCTCOUNT('表'[Project ID]), FILTER( '表', '表'[Start] <= TargetDate && '表'[Finish] >= TargetDate ) )
要是需要配合月份切片器动态切换,把TargetDate替换成:
VAR TargetDate = EOMONTH(SELECTEDVALUE('日期表'[日期]),-1)+1
这样选任意月份,都会自动取该月第一天作为判断基准。
为什么之前的方法会重复?
拆分每日数据后,同一个项目在8月的两个阶段都会生成多条记录,但我们只需要关注月初当天项目处于哪个阶段——由于项目阶段是连续推进的,每个项目在月初只会属于一个阶段,直接判断月初日期是否落在阶段的时间区间里,就能精准定位到该阶段,不需要拆分每日数据。
内容的提问来源于stack exchange,提问作者jroob
相关产品推荐
相关产品推荐

