我有一列的时间数据是文本格式的,超过24小时,我需要将其转换为时间格式。但是,时间〉24小时会导致错误:"无法分析作为时间值提供的输入。"样本数据:| 时间|| - ------|| 00点00分|| 00时00分01秒|| 00时01分|| 01时00分|| 24时00分|| 168时00分|
3wabscal1#
在powerquery中,如果数据在列时间中,则使用公式添加列..自定义列...
= #duration(0,Number.From(Text.Split([Time],":"){0}), Number.From(Text.Split([Time],":"){1}),Number.From( Text.Split([Time],":"){2}))
然后将类型转换为持续时间
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Added Custom1" = Table.AddColumn(Source, "Custom", each #duration(0,Number.From(Text.Split([Time],":"){0}), Number.From(Text.Split([Time],":"){1}),Number.From( Text.Split([Time],":"){2})),type duration) in #"Added Custom1"
a0zr77ik2#
Time数据类型限制为24小时,但可以使用Duration数据类型。下面是实现转换的M代码:
let Source = Table.FromList( { "00:00:00", "00:00:01", "00:01:00", "01:00:00", "24:00:00", "168:00:00" }, null, {"Duration String"} ), #"Added Custom" = Table.AddColumn( Source, "Duration", each let AllHours = Number.FromText(Text.BeforeDelimiter([Duration String], ":")), Days = Number.IntegerDivide(AllHours, 24), Hours = Number.Mod(AllHours, 24), Minutes = Number.FromText(Text.BetweenDelimiters([Duration String], ":", ":")), Seconds = Number.FromText(Text.AfterDelimiter([Duration String], ":", 1)), Duration = #duration(Days, Hours, Minutes, Seconds) in Duration, type duration ) in #"Added Custom"
camsedfj3#
如果文本持续时间在A2:A7范围内,那么在B2中使用下面的简单公式就足以将其转换为表示天数的数值(它在O365下工作,我还没有在旧版本下测试过):
A2:A7
B2
1*A2:A7
要理解它的作用,基本上是对每个单元格进行以下计算:
=SUM(TEXTSPLIT(A2,":") * {3600,60,1})/86400
它将每个元素转换为秒,求和,然后除以一天中的秒数:要以正确的格式显示结果,只需使用下面的d.hh:mm:ss。
d.hh:mm:ss
如您所见,它能够返回1s,1min,1h,1day,7days,将其转换为适当的时间单位。对于B2:B7范围内的数值,如果希望格式与以文本格式输入的输入完全相同,请改用:[hh]:mm:ss:
1s
1min
1h
1day
7days
B2:B7
[hh]:mm:ss
'
hh:mm:ss
'168:00:00
3条答案
按热度按时间3wabscal1#
在powerquery中,如果数据在列时间中,则使用公式添加列..自定义列...
然后将类型转换为持续时间
a0zr77ik2#
Time数据类型限制为24小时,但可以使用Duration数据类型。下面是实现转换的M代码:
camsedfj3#
如果文本持续时间在
A2:A7
范围内,那么在B2
中使用下面的简单公式就足以将其转换为表示天数的数值(它在O365下工作,我还没有在旧版本下测试过):要理解它的作用,基本上是对每个单元格进行以下计算:
它将每个元素转换为秒,求和,然后除以一天中的秒数:要以正确的格式显示结果,只需使用下面的
d.hh:mm:ss
。如您所见,它能够返回
1s
,1min
,1h
,1day
,7days
,将其转换为适当的时间单位。对于
B2:B7
范围内的数值,如果希望格式与以文本格式输入的输入完全相同,请改用:[hh]:mm:ss
:'
),格式如下:hh:mm:ss
。例如:'168:00:00
.