在 Excel 中,TIME 函数用于返回代表一天中某个特定时间的序列号,这个序列号是一个介于 0 到 1 之间的小数,0 代表午夜(00:00:00),1 代表下一个午夜。
语法
TIME(hour, minute, second)
参数说明
| 参数 | 说明 | 取值范围/行为 |
|---|---|---|
| hour (小时) | 必需,小时数,从 0(午夜)到 23。 | 如果输入大于 23,Excel 会将其转换为天数。24 小时 = 1 天。 |
| minute (分钟) | 必需,分钟数,从 0 到 59。 | 如果输入大于 59,Excel 会将其转换为小时。60 分钟 = 1 小时。 |
| second (秒) | 必需,秒数,从 0 到 59。 | 如果输入大于 59,Excel 会将其转换为分钟。60 秒 = 1 分钟。 |
注意:所有参数可以是正数、负数或小数,Excel 会自动处理进位或借位。
基本示例
✅ 示例 1:创建标准时间
=TIME(14, 30, 0)
- 结果:
14:30:00(下午 2 点 30 分) - 内部值:
604166666666667(即 14.5/24)
✅ 示例 2:处理超过范围的值(自动进位)
=TIME(25, 70, 90)
- 计算过程:
- 90 秒 = 1 分 30 秒 → 分钟变为 70 + 1 = 71,秒为 30
- 71 分钟 = 1 小时 11 分钟 → 小时变为 25 + 1 = 26,分钟为 11
- 26 小时 = 1 天 2 小时 → 日期加 1 天,小时为 2
- 结果:
2:11:30(第二天凌晨 2 点 11 分 30 秒)
✅ 示例 3:使用负数(借位)
=TIME(-1, -30, -30)
- 计算过程:
- -30 秒 = -0 分 -30 秒 → 需要向分钟借位
- -30 分钟 – 1 分钟(因秒借位)= -31 分钟 → 需要向小时借位
- -1 小时 – 1 小时(因分钟借位)= -2 小时
- -2 小时 + 24 小时 = 22 小时
-
-31 分钟 + 60 分钟 = 29 分钟
- -30 秒 + 60 秒 = 30 秒
- 结果:
22:29:30(前一天晚上 10 点 29 分 30 秒)
常见应用场景
🔹 场景 1:计算工作时间
假设员工上午 9:00 上班,下午 5:30 下班,计算工作时长:
=TIME(17, 30, 0) - TIME(9, 0, 0)
- 结果:
8:30:00(8 小时 30 分钟) - 提示:确保单元格格式设置为
[h]:mm:ss或h:mm,否则可能显示为小数。
🔹 场景 2:结合其他函数使用
从单元格中提取时间并重新组合:
=TIME(HOUR(A1), MINUTE(A1), SECOND(A1))
如果 A1 已经是时间格式,直接引用
A1即可,此用法常用于当时间存储在文本格式中时进行转换。
🔹 场景 3:动态生成时间
根据当前时间加上 30 分钟:
=NOW() + TIME(0, 30, 0)
注意事项
-
单元格格式:
TIME函数返回的是数值(小数)。- 要正确显示为时间,必须将单元格格式设置为
时间格式
(如h:mm:ss)。 - 如果显示为
58333,说明格式未设置正确。
与 NOW() 和 TODAY() 的区别:
TODAY()返回当前日期(整数)。NOW()返回当前日期和时间(小数)。TIME()只生成时间部分,不包含日期。
-
性能建议:
- 如果只需要固定时间,可以直接输入
09:00并用引号包裹或在单元格中输入后设置格式,不一定非要用TIME函数。 TIME更适合用于动态计算或公式构建中。
- 如果只需要固定时间,可以直接输入
常见问题解答
Q: 为什么我的 TIME 函数结果显示为小数?
A: 因为 Excel 内部将时间存储为小数,请将单元格格式改为“时间”即可正常显示。
Q: TIME 函数可以处理跨天的时间吗?
A: 可以,如果小时数超过 24,Excel 会自动增加天数。TIME(25,0,0) 会显示为 1:00:00(第二天)。
Q: 如何只获取小时部分?
A: 使用 HOUR(TIME(...)) 函数。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/482535.html



