DAX按不同类别拆分IT人员工单处理耗时小计的技术问询
IT团队工单耗时分类小计的DAX实现方案
问题背景
需分析IT团队成员处理工单的耗时情况,已通过DAX度量值:
TotalTime = SUM(Tickets[workingTimeMinutes])
在矩阵中正确展示每位成员的总耗时。需求为添加各工单类别(如ERP、Report等)的耗时小计列,即按成员维度统计其处理特定类别工单的总耗时。
尝试的无效方案
最初尝试直接在CALCULATE中添加列筛选条件:
Tickets_ERP = CALCULATE(SUM(Tickets[workingTimeMinutes]),Tickets[Category]="ERP")
该方案未达到预期效果,曾考虑是否需通过SUMX实现行级条件求和。
有效解决方案
通过在CALCULATE中嵌套Filter函数,显式指定筛选逻辑,可正确计算成员维度下特定类别的工单耗时:
Tickets_ERP = CALCULATE(SUM(Tickets[workingTimeMinutes]),Filter(Tickets,Tickets[Category]="ERP"))
原理说明
直接使用Tickets[Category]="ERP"作为CALCULATE的筛选参数时,可能受矩阵当前上下文(成员维度)的隐性影响,导致筛选逻辑未正确应用到成员行级别。而Filter函数会遍历Tickets表,在当前成员的行上下文范围内,精准筛选出Category为ERP的工单记录,再对这些记录的workingTimeMinutes求和,从而得到该成员处理ERP工单的总耗时。
如需扩展其他类别(如Report),只需复制该度量值并修改Filter中的Category条件即可:
Tickets_Report = CALCULATE(SUM(Tickets[workingTimeMinutes]),Filter(Tickets,Tickets[Category]="Report"))
内容的提问来源于stack exchange,提问作者Barnabeck
相关产品推荐
相关产品推荐

