我正在尝试从Excel中的其他数据源查询数据,并且正在接收大于.so
的任何持续时间的解析错误。
Expression.Error:我们无法解析Duration文字。细节: 51:33:08
如何正确地将excel解析持续时间(例如24:00:00
)作为持续时间?
编辑:
数据目前是128:22:13
格式的文字。我正在使用Excel查询工具从外部源导入数据。没有代码,我不是在尝试转换工作表中的单元格。这些转化是查询工具的一部分:
答案 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