如何在Excel中添加固定及时分格式的自定义时长
Excel时间计算两类常见问题的实操解决方案
刚好处理过这两类Excel时间计算需求,给你整理了一步就能上手的解决办法:
一、给现有时间添加固定时长(1小时/半小时/20分钟等)
这里分两种情况处理,取决于你的原始时间格式:
如果原始单元格是标准时间格式(比如
10:30、下午2:45这类)
直接用TIME函数构建增量,和原时间相加即可:- 添加1小时:
=A1 + TIME(1, 0, 0) - 添加半小时:
=A1 + TIME(0, 30, 0) - 添加20分钟:
=A1 + TIME(0, 20, 0)
注:TIME函数的三个参数分别对应「小时、分钟、秒」,按需调整就行
- 添加1小时:
如果原始单元格是数值(比如用
2代表2小时,0.5代表半小时)
因为Excel里1天=1,1小时=1/24,所以先把数值转成时间格式再加增量:
比如给数值2加20分钟:=A1/24 + TIME(0, 20, 0)
二、对「X小时Y分钟」格式的自定义时长求和
这种文本格式的时长没法直接求和,得先转成可计算的数值,求和后再转回去,步骤如下:
假设你的时长数据都在A列(比如A1=「1小时20分钟」,A2=「30分钟」):
步骤1:把文本时长转成总分钟数
在B1单元格输入以下公式,下拉填充到所有行:
=IF(ISNUMBER(SEARCH("小时",A1)),LEFT(A1,SEARCH("小时",A1)-1)*60,0) + IF(ISNUMBER(SEARCH("分钟",A1)),MID(A1,IFERROR(SEARCH("小时",A1)+2,1),SEARCH("分钟",A1)-IFERROR(SEARCH("小时",A1)+2,1))*1,0)
这个公式的逻辑是:
- 先提取「小时」前面的数字,乘以60转成分钟
- 再提取「分钟」前后的数字(如果有「小时」就从「小时」后开始取,没有就从开头取)
- 把两部分相加得到总分钟数(比如「1小时20分钟」会转成80,「30分钟」转成30)
步骤2:计算总分钟数的和
用SUM函数求和B列的分钟数:
=SUM(B:B)
示例里的总和就是80+30=110分钟
步骤3:把总分钟数转回「X小时Y分钟」格式
用以下公式把求和结果转成目标格式:
=IF(INT(SUM(B:B)/60)=0,"",INT(SUM(B:B)/60)&"小时")&IF(MOD(SUM(B:B),60)=0,"",MOD(SUM(B:B),60)&"分钟")
这个公式会自动处理边界情况:
- 总和110分钟→「1小时50分钟」
- 总和40分钟→「40分钟」
- 总和2小时→「2小时」
示例效果:
A1: 1小时20分钟 → B1: 80
A2: 30分钟 → B2: 30
SUM(B1:B2): 110 → 最终格式: 1小时50分钟
内容的提问来源于stack exchange,提问作者TryingToCode
相关产品推荐
相关产品推荐

