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.ToText
或 Duration.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:
(这样转换持续时间就不会中断)。
我在 Excel 中使用 Power Query 过滤一些 .txt 文件,从每个文件中提取时间值并显示结果。 问题是原始数据有 3 种不同的格式:
3:42.807
0:01:48.19
3:46
如何将它们转换为一致的格式(例如 3:42.80)。 我需要显示分钟、秒,最后是毫秒。
我尝试了几种不同的 Duration.ToText
或 Duration.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:
(这样转换持续时间就不会中断)。