Power Query:解析大于 24 小时的 HH:MM:SS 持续时间

Dou*_*ell 3 excel powerquery

我正在尝试从 Excel 中的另一个数据源查询数据,并且在任何大于24:00:00.

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

我如何正确地拥有 excel 解析持续时间,例如128:22:13持续时间?

编辑:

数据目前是文本HH:MM:SS格式。我正在使用 Excel 查询工具从外部源导入数据。没有代码,我不想转换工作表中的单元格。这些转换是查询工具的一部分:

在此处输入图片说明

Car*_*lsh 5

我们有一个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
Run Code Online (Sandbox Code Playgroud)

  • @DouglasGaskell您可以将此函数粘贴到高级编辑器中(请注意逗号,因为我们有严格的语法)。然后您可以单击“添加自定义列”,其中包含“= DurationFromYourText([Total Duration])”。如果您在谷歌上搜索如何创建自定义 Power Query / M 函数,就会发现有很多博客文章比我更详细地介绍了这些内容。也许http://www.mattmasson.com/2014/11/iteating-over-multiple-pages-of-web-data-using-power-query/是一个不错的开始? (2认同)

Sla*_*lai 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