如何用DAX在Power BI矩阵中统计每日各座席已完成工单数量
正确统计座席每日已完成工单的DAX方案
原度量值的问题
原代码用「当日去重Reference数 - 前日去重Reference数」的逻辑完全不符合需求,这个计算结果没有实际意义——它既不是新增工单量,也无法准确统计「前日出现但当日未出现的Reference(已完成工单)」数量。
正确DAX度量值
Completed References = VAR CurrentDate = MAX('SPJ Productivity'[Date created]) VAR PrevDate = CurrentDate - 1 // 若存在日期不连续场景,可替换为下方注释的代码 // VAR PrevDate = CALCULATE(MAX('SPJ Productivity'[Date created]), FILTER(ALL('SPJ Productivity'[Date created]), 'SPJ Productivity'[Date created] < CurrentDate)) VAR CurrentAgent = MAX('SPJ Productivity'[Agent]) // 提取前一天当前座席的所有唯一Reference VAR PrevDayReferences = CALCULATETABLE( VALUES('SPJ Productivity'[Reference]), FILTER( ALL('SPJ Productivity'), 'SPJ Productivity'[Date created] = PrevDate && 'SPJ Productivity'[Agent] = CurrentAgent ) ) // 提取当天当前座席的所有唯一Reference VAR CurrentDayReferences = CALCULATETABLE( VALUES('SPJ Productivity'[Reference]), FILTER( ALL('SPJ Productivity'), 'SPJ Productivity'[Date created] = CurrentDate && 'SPJ Productivity'[Agent] = CurrentAgent ) ) // 统计仅在前一天出现、当天未出现的Reference数量 RETURN COUNTROWS(EXCEPT(PrevDayReferences, CurrentDayReferences))
逻辑说明
CurrentDate:获取矩阵当前列对应的日期PrevDate:默认直接取当前日期的前一天;若业务存在日期不连续的情况,可切换为注释中的代码,获取最近的上一个有数据的日期CurrentAgent:获取矩阵当前行对应的座席PrevDayReferences:筛选出前一天该座席的所有唯一工单ReferenceCurrentDayReferences:筛选出当天该座席的所有唯一工单ReferenceEXCEPT函数用来找出仅存在于前一天集合、不存在于当天集合的工单,最后用COUNTROWS统计数量
注意事项
- 若模型中有独立日期表,建议用日期表的日期字段替代
'SPJ Productivity'[Date created],处理不连续日期的稳定性更强 - 确保
Agent列取值无重复、格式统一,避免统计偏差
内容的提问来源于stack exchange,提问作者Fox
相关产品推荐
相关产品推荐

