在Power BI中对日期范围迭代DAX表达式计算每日未结任务数
实现日期范围的未结Jira问题数统计
原度量值存在几个问题:一是硬编码了TODAY()作为判断基准,无法响应外部日期上下文;二是直接FILTER整个issues表效率偏低;另外还有明显笔误:dates_n应为date_n,public incidencias应为issues。
要实现日期范围的每日未结问题统计,按以下步骤操作:
1. 构建日期表
首先需要一个覆盖统计范围的日期表,包含从最早问题创建日期到今天的所有日期。用DAX生成:
Date Table = CALENDAR( MIN('issues'[creation_date]), TODAY() )
生成后,将该表标记为日期表(Power BI操作:选中表 → 「建模」选项卡 → 「标记为日期表」→ 确认)。无需与issues表建立关系,或建立单向筛选关系(日期表→issues表)即可。
2. 重写自适应上下文的度量值
新度量值会自动适配日期表的上下文,计算每个日期的未结问题数:
Opened Tasks = VAR CurrentDate = MAX('Date Table'[Date]) RETURN CALCULATE( DISTINCTCOUNT('issues'[idissue]), 'issues'[creation_date] <= CurrentDate, OR( ISBLANK('issues'[closing_date]), 'issues'[closing_date] > CurrentDate, 'issues'[status] <> "Closed" ) )
逻辑说明:
CurrentDate = MAX('Date Table'[Date]):获取当前筛选上下文的日期(当日期表的单一行被选中时,MAX返回该行的日期)- 用CALCULATE的列筛选参数替代全表FILTER,大幅提升计算效率
- 完整覆盖未结场景:
- 问题创建时间不晚于当前日期
- 满足任一未结条件:关闭日期为空、关闭日期晚于当前日期、状态未标记为Closed
3. 生成目标输出表
在Power BI中创建表格/矩阵可视化:
- 将
Date Table的Date字段拖入行区域 - 将重写后的
Opened Tasks度量值拖入值区域 - 按需调整日期显示格式(如设置为
DD/MM/YYYY)
即可得到按日期序列展示的每日未结问题数表格。
内容的提问来源于stack exchange,提问作者Jaime Garcia Lozano
相关产品推荐
相关产品推荐

