如何将SSRS的平均值计算格式公式迁移适配到Power BI
问题原因说明
- 公式报错是因为DAX语法中字符串拼接需要使用
&运算符,不能使用+,+会默认尝试把字符串转换为数值做算术计算,触发类型不匹配错误。 - 数值和SSRS结果不一致是因为你之前的改写缺失了原公式中的MOD 60取余逻辑,DAX内置
MOD(数值, 除数)函数可以实现和SSRS完全一致的取余效果。
对齐SSRS原逻辑的正确DAX公式
平均时长 = VAR 平均秒数 = AVERAGE(Consulta1[t_TOTAL_SALIDA_seg]) RETURN FORMAT(INT(平均秒数 / 3600), "##") & ":" & FORMAT(MOD(平均秒数, 60), "##")
公式中添加INT是为了确保小时部分只取整数,避免出现小数位的问题。
标准总秒数转时分格式方案
如果后续确认原SSRS公式的MOD 60是笔误(按总秒数转时分的标准逻辑,分钟应为总秒数模3600后除以60取整),可以使用以下标准公式,输出结果和通用时分格式逻辑一致:
平均时长 = VAR 平均秒数 = AVERAGE(Consulta1[t_TOTAL_SALIDA_seg]) VAR 小时部分 = INT(平均秒数 / 3600) VAR 分钟部分 = INT(MOD(平均秒数, 3600) / 60) RETURN FORMAT(小时部分, "##") & ":" & FORMAT(分钟部分, "##")
如果需要分钟不足两位时补0(如1小时5分显示为01:05),可以把格式串从"##"替换为"00"即可。
内容的提问来源于stack exchange,提问作者user15500092
相关产品推荐
相关产品推荐

