Excel / DAX平均问题

时间:2017-07-25 14:29:24

标签: excel concatenation average powerbi dax

感谢您抽出宝贵时间来查看我的问题。

DAX不允许持续时间值,因此为了计算持续时间值列表的平均值,我将持续时间分成了他们的组件' Hour', '时限'和'第二'值。然后将其中的每一个进行平均,然后将其连接起来作为解决方法。

这里有一个混乱:

在Excel中,当我将持续时间秒值除以86400(并因此格式为[h]:mm:ss)时,各个值精确计算(例如10:49:12来自持续时间) -in-seconds值和个别" Hour',' Minute' Second'值分别匹配 - 分别为10,49和12) - 但是当我平均时持续时间为秒的列,我收到的值与平均组件时间值和连接它们的值不同(用冒号分隔)。

我确信这将是非常简单的事情,所以我希望这里的一位伟大思想能够让我摆脱困境并提供简明扼要的解释......这对我的小脑子来说太过分了;尽管睡眠不足!

非常感谢您提前,

罗布

1 个答案:

答案 0 :(得分:1)

使用DAX复制Power BI中的计算没有问题。 您可以检查DAX是否与您的相同。

包含100行随机数据的表:

table

DurationInSeconds:

DurationInSeconds = RANDBETWEEN(0, 150000)

小时

Hour = QUOTIENT('Time'[DurationInSeconds], 3600)

分:

Minute = MOD(QUOTIENT('Time'[DurationInSeconds], 60), 60)

第二

Second = MOD('Time'[DurationInSeconds], 60)

AverageByDurationInSeconds:

AverageByDurationInSeconds = AVERAGE('Time'[DurationInSeconds])

AverageByHourMinuteSeconds:

AverageByHourMinuteSecond = AVERAGE('Time'[Hour]) & ":" & AVERAGE('Time'[Minute]) & ":" & AVERAGE('Time'[Second])

结果:

results

当然,度量AverageByHourMinuteSeconds没有多大意义,因为必须保留小数位以保证准确性,但计算仍然有效。 (21.9 * 3600 + 29.73 * 60 + 29.77 = 80653.57)