Excel 时间函数 #

函数概览 #

时间函数用于处理和计算时间数据,是考勤管理、工时计算的重要工具。

text
┌─────────────────────────────────────────────────────────────┐
│                    时间函数一览                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  HOUR       提取小时    =HOUR("14:30:25")     → 14          │
│  MINUTE     提取分钟    =MINUTE("14:30:25")   → 30          │
│  SECOND     提取秒数    =SECOND("14:30:25")   → 25          │
│  TIME       创建时间    =TIME(14, 30, 25)     → 14:30:25    │
│  TIMEVALUE  文本转时间  =TIMEVALUE("14:30")   → 0.604167    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Excel 时间系统 #

时间序列号 #

Excel 将时间存储为 0 到 1 之间的小数:

text
00:00:00 = 0
06:00:00 = 0.25
12:00:00 = 0.5
18:00:00 = 0.75
23:59:59 = 0.999988

日期时间组合 #

excel
日期 + 时间 = 完整时间戳

2024/1/15 + 14:30 = 45292.604167

时间格式代码 #

text
h    小时(0-23)
hh   小时(00-23)
m    分钟(0-59)
mm   分钟(00-59)
s    秒(0-59)
ss   秒(00-59)
AM/PM  上午/下午

HOUR 函数 #

语法 #

excel
=HOUR(time)

返回时间的小时数(0-23)

基本用法 #

excel
=HOUR("14:30:25")           → 14
=HOUR(TIME(8, 30, 0))       → 8
=HOUR(NOW())                → 当前小时
=HOUR(0.5)                  → 12(0.5 = 中午12点)

实际应用 #

excel
判断上午下午:
=IF(HOUR(A1)<12, "上午", "下午")

判断班次:
=IF(HOUR(A1)<8, "早班", IF(HOUR(A1)<16, "中班", "晚班"))

计算小时差:
=HOUR(B1-A1)

实际示例 #

text
考勤班次:
    A          B
1   打卡时间   班次
2   7:30       =IF(HOUR(A2)<8, "早班", IF(HOUR(A2)<16, "中班", "晚班"))
              → "早班"

MINUTE 函数 #

语法 #

excel
=MINUTE(time)

返回时间的分钟数(0-59)

基本用法 #

excel
=MINUTE("14:30:25")         → 30
=MINUTE(TIME(8, 45, 0))     → 45
=MINUTE(NOW())              → 当前分钟

实际应用 #

excel
四舍五入到整点:
=TIME(HOUR(A1), 0, 0)

四舍五入到15分钟:
=TIME(HOUR(A1), ROUND(MINUTE(A1)/15, 0)*15, 0)

计算分钟差:
=MINUTE(B1-A1)

SECOND 函数 #

语法 #

excel
=SECOND(time)

返回时间的秒数(0-59)

基本用法 #

excel
=SECOND("14:30:25")         → 25
=SECOND(TIME(8, 30, 45))    → 45
=SECOND(NOW())              → 当前秒数

实际应用 #

excel
四舍五入到整分钟:
=TIME(HOUR(A1), MINUTE(A1), 0)

精确时间戳:
=TEXT(NOW(), "hh:mm:ss")

TIME 函数 #

语法 #

excel
=TIME(hour, minute, second)

参数:
- hour: 小时(0-32767)
- minute: 分钟(0-32767)
- second: 秒(0-32767)

基本用法 #

excel
=TIME(14, 30, 25)           → 14:30:25
=TIME(8, 0, 0)              → 8:00:00
=TIME(25, 0, 0)             → 1:00:00(自动进位)
=TIME(0, 90, 0)             → 1:30:00(自动进位)

实际应用 #

excel
从时分秒字段组合时间:
=TIME(A1, B1, C1)

创建固定时间:
=TIME(9, 0, 0)   上班时间
=TIME(18, 0, 0)  下班时间

时间加减:
=A1 + TIME(1, 30, 0)   加1小时30分钟
=A1 - TIME(0, 30, 0)   减30分钟

实际示例 #

text
从分离字段创建时间:
    A        B        C        D
1   时       分       秒       时间
2   14       30       25       =TIME(A2, B2, C2)  → 14:30:25

TIMEVALUE 函数 #

语法 #

excel
=TIMEVALUE(time_text)

将文本格式的时间转换为时间序列号

基本用法 #

excel
=TIMEVALUE("14:30")         → 0.604167
=TIMEVALUE("2:30 PM")       → 0.604167
=TIMEVALUE("14:30:25")      → 0.604456

实际应用 #

excel
文本时间转数值:
=TIMEVALUE(A1)

提取文本中的时间:
=TIMEVALUE(MID(A1, FIND(" ", A1)+1, LEN(A1)))

时间比较:
=TIMEVALUE(A1) > TIMEVALUE("12:00")

注意事项 #

excel
TIMEVALUE 只能处理纯时间文本
如果包含日期部分,需要先提取时间

错误示例:
=TIMEVALUE("2024/1/15 14:30")  → #VALUE!

正确做法:
=TIMEVALUE(MID(A1, FIND(" ", A1)+1, LEN(A1)))

时间计算 #

时间加减 #

excel
加1小时:
=A1 + TIME(1, 0, 0)
=A1 + 1/24

加30分钟:
=A1 + TIME(0, 30, 0)
=A1 + 1/48

加1分钟:
=A1 + TIME(0, 1, 0)
=A1 + 1/1440

时间差计算 #

excel
简单时间差:
=B1-A1

显示为小时:
=(B1-A1)*24

显示为分钟:
=(B1-A1)*24*60

显示为小时:分钟:
=TEXT(B1-A1, "h:mm")

跨天时间计算 #

excel
如果结束时间小于开始时间,表示跨天:

=IF(B1<A1, 1+B1-A1, B1-A1)

或:
=MOD(B1-A1, 1)

实际示例 #

text
工时计算:
    A          B          C
1   开始时间   结束时间   工时(小时)
2   9:00       18:00      =(B2-A2)*24  → 9
3   22:00      6:00       =MOD(B3-A3, 1)*24  → 8

函数组合应用 #

计算总工时 #

excel
=TEXT(B1-A1, "h:mm")

或显示为小数:
=(B1-A1)*24

或显示为小时和分钟:
=INT((B1-A1)*24) & "小时" & MINUTE(B1-A1) & "分钟"

时间四舍五入 #

excel
四舍五入到15分钟:
=MROUND(A1, TIME(0, 15, 0))

向上舍入到15分钟:
=CEILING(A1, TIME(0, 15, 0))

向下舍入到15分钟:
=FLOOR(A1, TIME(0, 15, 0))

判断时间段 #

excel
判断是否在工作时间(9:00-18:00):
=AND(A1>=TIME(9,0,0), A1<=TIME(18,0,0))

判断是否在午休时间(12:00-13:00):
=AND(A1>=TIME(12,0,0), A1<=TIME(13,0,0))

计算加班时间 #

excel
假设标准工作时间为8小时:

=MAX(0, (B1-A1)*24-8)

或考虑午休:
=MAX(0, (B1-A1-TIME(1,0,0))*24-8)

实战案例 #

案例1:考勤计算 #

text
数据:
    A          B          C          D
1   上班时间   下班时间   工时       加班
2   9:00       18:30      =(B2-A2)*24  =MAX(0,C2-8)
                           → 9.5       → 1.5

案例2:时段统计 #

text
数据:
    A          B
1   时间       时段
2   7:30       =IF(A2<TIME(12,0,0), "上午", 
                          IF(A2<TIME(18,0,0), "下午", "晚上"))
              → "上午"

案例3:时间格式转换 #

text
数据:
    A              B
1   文本时间       标准时间
2   "14时30分"     =TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A2,"时",":"),"分",""))
                  → 14:30

小结 #

时间函数是处理时间数据的核心工具:

函数 用途 示例
HOUR 提取小时 =HOUR("14:30")
MINUTE 提取分钟 =MINUTE("14:30")
SECOND 提取秒数 =SECOND("14:30:25")
TIME 创建时间 =TIME(14, 30, 0)
TIMEVALUE 文本转时间 =TIMEVALUE("14:30")

接下来,让我们学习 逻辑函数,掌握条件判断技巧。

最后更新:2026-04-11