求Power BI中[STORY COMPLETED]指标的30天滚动平均DAX度量值
30天滚动平均DAX度量值解决方案
现有度量值确认
你当前统计完成故事数的度量值是正确的:
STORY COMPLETED = CALCULATE(COUNT(SprintReportIssues[SPRINT_REPORT_STATUS]), SprintReportIssues[SPRINT_REPORT_STATUS] = "COMPLETED")
30天滚动平均度量值
以下是实现30天滚动平均的DAX表达式,完全匹配你示例中的连续值平均逻辑:
STORY COMPLETED 30天滚动平均 = VAR 当前日期 = MAX(SprintReportIssues[日期列]) -- 替换为你表中实际的日期字段名 VAR 滚动日期范围 = DATESINPERIOD(SprintReportIssues[日期列], 当前日期, -30, DAY) RETURN AVERAGEX( 滚动日期范围, [STORY COMPLETED] )
必看注意事项
- 替换日期列:把代码里的
[日期列]换成你表中存储日期的实际字段,比如SprintReportIssues[SPRINT_END_DATE]。 - 日期表建议:如果模型没有独立日期表,建议新建一个并标记为日期表,避免上下文过滤导致计算错误;若使用原表日期列,需确保无重复或无效日期。
- 空值处理:若某天无完成数据,原度量值会返回空白,滚动平均会忽略该天。如需将空白视为0参与计算,修改原度量值:
STORY COMPLETED = CALCULATE(COUNT(SprintReportIssues[SPRINT_REPORT_STATUS]), SprintReportIssues[SPRINT_REPORT_STATUS] = "COMPLETED") + 0 - 范围调整:若需排除当前日期,仅计算前30天,将
滚动日期范围修改为:VAR 滚动日期范围 = DATESBETWEEN(SprintReportIssues[日期列], 当前日期 - 30, 当前日期 - 1)
逻辑说明
当前日期提取当前行对应的上下文最大日期。滚动日期范围生成从当前日期往前30天的连续日期区间。AVERAGEX遍历区间内的每一天,计算当日STORY COMPLETED值后取平均值,和你示例中(19+18+13)/3这类计算逻辑完全一致。
内容的提问来源于stack exchange,提问作者GSE08
相关产品推荐
相关产品推荐

