将小时数字转换为持续时间 (HH:mm:ss) 格式 DAX

问题描述 投票:0回答:1

因此,我通过 PowerQuery 导入了这组数据,并将其加载到我的 Excel 工作簿的数据模型中。为了减少查询加载时间,我决定将大部分转换转移到数据模型而不是查询编辑器。现在,我有一个名为 [Internal Time] 的字段,它存储两个时间戳之间的持续时间(以小时为单位)。我想找到一种方法将它们成功转换为 HH:mm:ss 格式的时间值。

正如您在下表中看到的,一些转换是正确的,而另一些则相差甚远

内部时间 内部时间(持续时间)
47.7 23:42:00
8.2 8:12:00

我使用的解决方案基本上就是将第 1 列除以 24。

完整公式如下。有很多条件,但只要满足其中任何一个,该值就会除以 24。

=(IF([Create Time]>[Finish Time], [Create Time]-[Finish Time],
IF(AND([Internal Time]>0, [Internal Time]-[Weekends] >0), [Internal Time]-'Raw Data'[Weekends],
IF(AND([Internal Time]>0, [Internal Time]-[Weekends] <=0), [Internal Time],
IF(AND([Internal Time]<0, [Actual Duration] >0), [Actual Duration],
IF([Internal Time]=0, [Finish Time] - [Create Time]))))))/24
excel dax powerquery measure
1个回答
1
投票

这更像是一种解决方法。

注意: 这只有效到 31 天,如果有更多此计数器将重新启动。

它基于每月第一天的日期格式,在下面的示例中为 1/1/2000,并添加您的度量 [内部时间]。然后,您可以通过显示天、小时、分钟和秒来使用它。

yourMeasure = 

VAR DateHelper = DATE(2000,1,1)

Return
DateHelper + 
DATE(
    YEAR([Internal Time]/24),
        MONTH([Internal Time]/24),
        DAY([Internal Time]/24)
    )+
TIME(
    HOUR([Internal Time]/24),
    MINUTE([Internal Time]/24),
    SECOND([Internal Time]/24)
)

将此度量添加到表格/矩阵后,请确保将格式更改为“d hh:mm:ss”

© www.soinside.com 2019 - 2024. All rights reserved.