将ss.xxx转换为mm.ss.xxx-Powerbi

将ss.xxx转换为mm.ss.xxx-Powerbi,powerbi,Powerbi,如何在Powerbi查询编辑器中将ss.xxx转换为mm:ss:xxx 例如,我的数据是229.19,我可以使用#duration将其转换为0.00:03:49.190000 #duration(0,0,0,[Cumulative_Time]) 然而,我想要一个解决方案,不包括天和小时,四舍五入到最接近的3位小数 我正在尝试实现“03:49.190”这是一个相当困难的答案,因为没有现成的格式来解决秒分数的问题,但是我的结果将取决于十进制分数的多少,而不是固定的十进制值,如果有帮助,请接受答案:

如何在Powerbi查询编辑器中将ss.xxx转换为mm:ss:xxx

例如,我的数据是229.19,我可以使用#duration将其转换为0.00:03:49.190000

#duration(0,0,0,[Cumulative_Time])
然而,我想要一个解决方案,不包括天和小时,四舍五入到最接近的3位小数


我正在尝试实现“03:49.190”

这是一个相当困难的答案,因为没有现成的格式来解决秒分数的问题,但是我的结果将取决于十进制分数的多少,而不是固定的十进制值,如果有帮助,请接受答案:)

两种方法:

A)纯M代码:

公式如下:

let   
minduration = Duration.Minutes(#duration(0,0,0,[Column1])),
minutes = if minduration < 10 then 
"0" & Number.ToText(minduration) else  
Number.ToText(minduration),

secduration = Duration.Seconds(#duration(0,0,0,[Column1])),
sec = if secduration < 10 then 
"0" & Number.ToText(secduration) else   
Number.ToText(secduration),

result = minutes & ":" & sec

in  
result
其次,我将使用dax
Format
函数提取
minute
部分,并对minute和sec frac进行
连接

Expected Output = FORMAT('Table'[Minute Sec],"nn") & ":" & 'Table'[Minute Frac]
这里是结果,我还包括另一个例子,第二个分数是3位小数,参考
Hour-Sec


这真是太棒了,谢谢你。不过,有一个问题我正试图解决。方法A)将前导0置于秒位置。e、 g.02:03.52将是02:3.52。你知道如何解决这个问题吗?是的,我以前考虑过这个问题,解决这个问题就像我如何处理
minutes
,当
秒数低于10时,你可以添加
if
函数,然后在它前面加0,如果不能,试试看我会帮你的。嗨,金,如果你愿意的话。。我对这个公式有意见……我已经修改了答案,看看你的证交会问题:)
Expected Output = FORMAT('Table'[Minute Sec],"nn") & ":" & 'Table'[Minute Frac]