电源查询:解析HH:MM:SS持续时间超过24小时

时间:2016-08-11 22:23:41

标签: excel powerquery

我正在尝试从Excel中的其他数据源查询数据,并且正在接收大于.so的任何持续时间的解析错误。

  

Expression.Error:我们无法解析Duration文字。细节:       51:33:08

如何正确地将excel解析持续时间(例如24:00:00)作为持续时间?

编辑:

数据目前是128:22:13格式的文字。我正在使用Excel查询工具从外部源导入数据。没有代码,我不是在尝试转换工作表中的单元格。这些转化是查询工具的一部分:

enter image description here

2 个答案:

答案 0 :(得分:4)

我们有一个Duration.FromText库函数,但记录的只允许0到23小时。当您将类型从文本更改为持续时间时,此功能正在应用于幕后。

幸运的是#duration构造函数没有这样的限制,所以这里有一个简单的小解析函数。

let
    DurationFromYourText = (text as text) as duration => let
        Split = Text.Split(text, ":"),
        AsNumbers = List.Transform(Split, Number.FromText),
        Duration = #duration(0, AsNumbers{0}, AsNumbers{1}, AsNumbers{2})
    in
        Duration,
    Invoked = DurationFromYourText("128:22:13")
in
    Invoked

答案 1 :(得分:0)

您可以将文本拆分为两列或更多列https://support.office.com/en-us/article/Split-a-column-of-text-Power-Query-5282d425-6dd0-46ca-95bf-8e0da9539662#__toc354843579

之后,您可以将小时列除以24以获得日期,将模数24除以得到剩余小时数。 对于mod,您可能必须更改一些Power Query公式语言M. https://msdn.microsoft.com/en-us/library/mt253344.aspx