Excel如何计算单单元格内多时间段的总时差(分钟数)
Excel单单元格多段时间总分钟差值计算方法
方案1:Excel 365/2021及以上版本(内置公式直接实现)
直接在目标单元格输入以下公式即可,假设存储时间段的单元格为A1:
=SUM((--RIGHT(TEXTSPLIT(A1," / "),5)- --LEFT(TEXTSPLIT(A1," / "),5))*1440)
公式逻辑说明:
- 先用
TEXTSPLIT按/把单元格内容拆分为多个独立的时间段片段 - 对每个时间段分别取前5位为开始时间、后5位为结束时间,转换为Excel时间序列值
- 时间差值乘以1440(一天的总分钟数)转换为分钟单位,最后求和得到总时长
方案2:低版本Excel(VBA自定义函数实现)
如果使用的是2019及更早版本,没有TEXTSPLIT函数,可以用自定义函数实现:
- 按
Alt+F11打开VBA编辑器,右键点击当前工作簿名称→【插入】→【模块】 - 在模块编辑框中粘贴以下代码:
Function CalcTotalMin(rng As Range) As Long Dim timeSegments, singleSeg, startEnd timeSegments = Split(rng.Value, " / ") For Each singleSeg In timeSegments startEnd = Split(singleSeg, "-") CalcTotalMin = CalcTotalMin + DateDiff("n", CDate(startEnd(0)), CDate(startEnd(1))) Next End Function
- 保存文件为「Excel 启用宏的工作簿(.xlsm)」格式,回到表格界面,在目标单元格输入
=CalcTotalMin(A1)即可得到结果
效果验证
针对示例中的00:00-06:00 / 22:00-24:00内容,第一段时长360分钟,第二段时长120分钟,两种方案计算结果均为480分钟,符合需求。
内容的提问来源于stack exchange,提问作者GenijeOnline
相关产品推荐
相关产品推荐

