SSIS中非常规格式时间转换为秒的技术求助
Excel不规则时间转秒的解决办法
公式直接计算法
针对这种开头可能缺小时的时间格式,直接用组合公式就能搞定:=TIMEVALUE(IF(LEFT(A2,1)=":", "0"&A2, A2))*86400
- 逻辑:先判断时间字符串开头是不是冒号,是的话补个0在前面,把
:52:10变成0:52:10;再用TIMEVALUE把文本转成Excel可识别的时间值,最后乘以86400(一天的总秒数)得到结果。 - 测试结果完全符合要求:
Time Seconds 1:03:48 3828 :52:10 3130
分列求和法(适合新手)
如果觉得公式复杂,用分列操作更直观:
- 选中时间列,点击「数据」选项卡的「分列」,分隔符选冒号
: - 分列后会得到3列,缺小时的行第一列是空值,把空单元格全选替换成0
- 用公式
=小时列*3600 + 分钟列*60 + 秒列计算总秒数就行
Power Query(TOKEN函数替代方案)
你之前试的TOKEN函数不好用,换Power Query的自定义列更靠谱:
- 把数据导入Power Query,选中时间列
- 添加自定义列,粘贴以下代码:
let timeStr = [Time], fixedStr = if Text.StartsWith(timeStr, ":") then "0" & timeStr else timeStr, timeParts = Text.Split(fixedStr, ":"), hours = Number.From(timeParts{0}), minutes = Number.From(timeParts{1}), seconds = Number.From(timeParts{2}) in hours*3600 + minutes*60 + seconds - 关闭并上载到Excel,就能得到正确的秒数
内容的提问来源于stack exchange,提问作者Dont_know
相关产品推荐
相关产品推荐

