PowerBI中按来源分组计算多ID聊天机器人平均服务时长
在Power BI中按Source计算聊天机器人平均服务时长的实现方法
方法一:DAX度量值(动态交互场景适用)
适合需要随筛选器动态更新结果的场景,比如搭配切片器查看不同Source的平均值。
- 创建度量值计算单个Contact2__c的服务时长:
单个用户服务时长(分钟) = VAR MinTime = MIN('数据表'[ServerDateTime__c]) VAR MaxTime = MAX('数据表'[ServerDateTime__c]) RETURN DATEDIFF(MinTime, MaxTime, MINUTE)
- 创建度量值计算Source维度下的平均服务时长:
Source平均服务时长(分钟) = AVERAGEX( VALUES('数据表'[Contact2__c]), [单个用户服务时长(分钟)] )
- 逻辑:
VALUES('数据表'[Contact2__c])提取当前Source下的所有独立用户,AVERAGEX遍历每个用户计算服务时长后取平均值。
方法二:Power Query预处理(静态汇总场景适用)
适合生成固定的汇总报表,无需动态交互的场景。
进入Power Query编辑器,选中数据表,点击开始→分组依据:
- 分组依据:选择
Contact2__c和Source(两个分组字段) - 添加聚合列:
- 列名:
最小时间,操作:最小值,目标列:ServerDateTime__c - 列名:
最大时间,操作:最大值,目标列:ServerDateTime__c
- 列名:
- 分组依据:选择
添加自定义列计算单个用户的服务时长(分钟):
= Duration.TotalMinutes([最大时间] - [最小时间])
再次点击分组依据,按
Source分组:- 添加聚合列:列名
平均服务时长(分钟),操作平均值,目标列:上一步生成的自定义列
- 添加聚合列:列名
关闭并应用,即可得到按Source汇总的平均服务时长表。
注意事项
- 替换上述代码中的
数据表为你的实际数据表名称 - 如果
ServerDateTime__c是文本格式,需先转换为日期时间类型:- Power Query:转换→数据类型→日期/时间
- DAX:使用
DATETIMEVALUE('数据表'[ServerDateTime__c])替换原字段引用
内容的提问来源于stack exchange,提问作者bkraffa
相关产品推荐
相关产品推荐

