非标准时间格式,如何快速算出总时长?

墨云轩
墨云轩 WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

有网友咨询了这样一道问题:表格里记录的时间,如下图所示:

他想求出这些时间的总时长?

一看就知道,这个不是标准的时间格式。我们通常的想法是:先转换成标准时间格式,再求和。但问题来了——这个时间格式里,有"h",有"m",有"s",用常规的替换方法做不出来。

那怎么办呢?今天分享一个思路:先把时间全部转换成秒,再求和。

第一步:将时间转换成秒

这里用到的是 WPS 中的 SUBSTITUTES 函数 + EVALUATE 函数。

操作步骤

  1. 提取小时、分钟、秒并转换成算式,如下图所示:

数据在 A2:A5 区域,我们在 B2 输入以下公式:

=SUBSTITUTES(A2:A5,{"h";"m";"s"},{"*3600+";"*60+";"+"})&0,

如果你用的Excel可以使用以下公式:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"h","*3600+"),"m","*60+"),"s","+")&0

这两个公式的作用是:

将"h"替换成 *3600+

将"m"替换成 *60+

将"s"替换成 +

最后连接一个 0,保证算式完整

比如"1h7m9秒"就变成了 1*3600+7*60+9+0,也就是一个文本算式。如下图所示:

  1. 对文本算式求值

在B2 输入公式:

=EVALUATE(SUBSTITUTES(A2:A5,{"h";"m";"s"},{"*3600+";"*60+";"+"})&0)

EVALUATE 函数可以将文本算式计算出来,得到总秒数。如下图所示:

第二步:计算总秒数

在 B2单元格输入:

=SUM(EVALUATE(SUBSTITUTES(A2:A5,{"h";"m";"s"},{"*3600+";"*60+";"+"})&0))

这样就得到了所有时间的总秒数。如下图所示:

第三步:将总秒数转换成"X小时X分钟X秒"

网友想要的是"4小时6分钟50秒"这样的格式,怎么办?

在 B2 单元格输入公式:

=TEXT(C6/86400,"h小时m分钟s秒")

这里除以 86400 是因为 1 天 = 24小时 × 60分钟 × 60秒 = 86400 秒

回车后,就得到了 4小时6分钟50秒。如图所示:

具体操作可以看视频演示:

关于 Excel 用户

上面的方法是基于 WPS 来完成的。如果你用的是 Excel,Excel 中没有 EVALUATE 函数,那怎么办呢?

其实 Excel 中可以通过 定义名称 的方式来使用 EVALUATE。具体操作:

点击"公式"选项卡 → "定义名称"

名称输入"计算",引用位置输入 =EVALUATE(Sheet1!$B2)

在单元格中输入 =计算 即可

今天的分享就到这里。关于这个问题,你是否还有更好的解决方法?欢迎留言分享!


我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!

Excel、WPS表格函数大全
@墨云轩
河北省
浏览 194
收藏
8
分享
8 +1
2
+1
全部评论 2
 
临商珑胜
临商珑胜 Lv.1 新人创作者

Lv.1 新人创作者

学习了
   山东省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

·
举报
0
0