Power Query Duration 格式一致性

Power Query Duration format consistency

我在 Excel 中使用 Power Query 过滤一些 .txt 文件,从每个文件中提取时间值并显示结果。 问题是原始数据有 3 种不同的格式:

3:42.807
0:01:48.19
3:46

如何将它们转换为一致的格式(例如 3:42.80)。 我需要显示分钟、秒,最后是毫秒。

我尝试了几种不同的 Duration.ToTextDuration.From 但我遇到了更多问题。 另外我想避免添加额外的列来计算持续时间格式。是否可以只转换原始列?

= Table.TransformColumnTypes(#"Reordered Columns",{{"Time", type duration}})

这是我要求转换为持续时间的 Power 查询的公式,但我不喜欢这种格式“d.hh.mm.ss”等。它给我错误。如果是Duration类型但只显示分秒毫秒就完美了(3:41.23)

有什么帮助吗?

我认为您无法在查询编辑器中更改给定列类型的显示格式。如果您需要不同的格式,则必须将其转换为文本列。

我是这样修改它的:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrYyMdKzMDBXitWJVjKwMjC0MrHQM7QEc4FyZkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Time = _t]),
    StandardizeFormat = Table.TransformColumns(Source,{{"Time", each Duration.ToText(Duration.FromText(if List.Count(Text.Split(_, ":")) = 2 then "0:" & _ else _)), type text}}),
    TrimZeros = Table.TransformColumns(StandardizeFormat, {{"Time", each Text.TrimEnd(Text.AfterDelimiter(_, "00:0"),"0"), type text}})
in
    TrimZeros

如果还没有两个冒号,if List.Count(Text.Split(_, ":")) = 2 then "0:" & _ else _ 部分告诉它在开头添加 0:(这样转换持续时间就不会中断)。