Power BI中实现总秒数列转DD-HH:MM:SS格式新列的方法
在Power BI中将秒数格式化为「天数 - 小时:分钟:秒」的方法
根据你的需求,可通过DAX公式创建度量值(动态响应筛选)或计算列(每行固定值)来实现格式转换:
方法1:创建动态度量值(适配筛选条件)
适合需要根据所选筛选条件自动更新总时长的场景,DAX代码如下:
Formatted Duration = VAR TotalSeconds = SUM('Sudbury Vehicle Line Time'[DurationSec]) VAR Days = INT(TotalSeconds / 86400) VAR RemainingSeconds = MOD(TotalSeconds, 86400) VAR Hours = INT(RemainingSeconds / 3600) VAR RemainingAfterHours = MOD(RemainingSeconds, 3600) VAR Minutes = INT(RemainingAfterHours / 60) VAR Seconds = MOD(RemainingAfterHours, 60) RETURN Days & " - " & FORMAT(Hours, "00") & ":" & FORMAT(Minutes, "00") & ":" & FORMAT(Seconds, "00")
方法2:创建计算列(每行独立格式化)
如果需要给表中每行的DurationSec单独生成格式化文本,使用以下DAX代码:
Formatted Duration Column = VAR TotalSeconds = 'Sudbury Vehicle Line Time'[DurationSec] VAR Days = INT(TotalSeconds / 86400) VAR RemainingSeconds = MOD(TotalSeconds, 86400) VAR Hours = INT(RemainingSeconds / 3600) VAR RemainingAfterHours = MOD(RemainingSeconds, 3600) VAR Minutes = INT(RemainingAfterHours / 60) VAR Seconds = MOD(RemainingAfterHours, 60) RETURN Days & " - " & FORMAT(Hours, "00") & ":" & FORMAT(Minutes, "00") & ":" & FORMAT(Seconds, "00")
代码说明
TotalSeconds:获取目标秒数(度量值取筛选后的总和,计算列取当前行值)Days:通过总秒数除以86400(1天的秒数)取整得到天数RemainingSeconds:扣除天数后剩余的秒数Hours/Minutes/Seconds:依次从剩余秒数中提取对应时间单位,用FORMAT函数确保两位数格式(不足补0)- 最后拼接成「天数 - 小时:分钟:秒」的指定格式
内容的提问来源于stack exchange,提问作者Robert Gauthier
相关产品推荐
相关产品推荐

