跳转至

WEEKDAY 函数

函数概述

WEEKDAY 用于将一个日期(或日期时间)转换为“星期序号”,从而方便你在表格中判断星期几、做工作日/周末标记、排班统计、按周汇总等。

它的特点是:同一个日期可以用不同的返回类型 return_type 得到不同的星期编码方式(例如周日=1 或周一=1)。


基础语法

=WEEKDAY(serial_number, [return_type])

参数说明

参数 是否必填 含义 说明
serial_number 日期/日期时间 可以是日期值、引用的日期单元格,或可被 Excel 识别的日期文本(建议用日期值/单元格引用更稳定)
return_type 返回类型 决定“星期几”对应的数字编码方式;省略时默认 1

常用 return_type 对照表(建议收藏):

return_type 返回值范围 对应关系(从 1 开始)
1(默认) 1–7 周日=1,周一=2,…,周六=7
2 1–7 周一=1,周二=2,…,周日=7
3 0–6 周一=0,周二=1,…,周日=6
11 1–7 周一=1,…,周日=7
(与 2 类似,常用于“周一为起始”的体系)
12 1–7 周二=1,…,周一=7
13 1–7 周三=1,…,周二=7
14 1–7 周四=1,…,周三=7
15 1–7 周五=1,…,周四=7
16 1–7 周六=1,…,周五=7
17 1–7 周日=1,…,周六=7(与 1 类似)

实战中最常用:123。其中 2(周一=1) 最适合国内常见业务口径。


基础用法示范

下面示例假设单元格 A2 是一个日期(如 2026-01-16)。

1)返回星期序号(默认:周日=1)

=WEEKDAY(A2)
  • 返回 1–7
  • 周日是 1,周六是 7

2)返回星期序号(周一=1,更常用)

=WEEKDAY(A2,2)
  • 返回 1–7
  • 周一是 1,周日是 7

3)返回星期序号(周一=0)

=WEEKDAY(A2,3)
  • 返回 0–6
  • 周一是 0,周日是 6

4)把“星期序号”转换成中文“星期几”

方式 A:使用 CHOOSE(直观、易读)

=CHOOSE(WEEKDAY(A2,2),"周一","周二","周三","周四","周五","周六","周日")

这里用 return_type=2,让周一从 1 开始,正好对应 CHOOSE 的第 1 个选项。

方式 B:用自定义格式直接显示星期(无需 WEEKDAY)

  • 如果你只是想显示“星期几”,也可以直接用:
=TEXT(A2,"aaaa")

5)判断是否周末(周六/周日)

=IF(WEEKDAY(A2,2)>=6,"周末","工作日")
  • WEEKDAY(A2,2):周一=1 … 周日=7
  • 大于等于 6 即周六/周日

6)按“周一为一周开始”计算本周第几天

=WEEKDAY(A2,2)

这其实就是 return_type=2 的含义:本周第 1 天是周一。

7)配合条件格式:周末高亮

在条件格式的“使用公式确定要设置格式的单元格”中使用:

=WEEKDAY($A2,2)>=6

若为 TRUE,则对整行/指定区域应用高亮格式。


总结

  • WEEKDAY 的核心作用:把日期转换为“星期编码”,便于后续判断、分组和统计。
  • 选择合适的 return_type 很关键:

    • 常见业务建议用 2(周一=1)
    • 做偏移、数组/取模类计算可用 3(周一=0)
  • 常见组合玩法:

    • WEEKDAY + IF:工作日/周末标记、排班规则
    • WEEKDAY + CHOOSE/TEXT:输出可读的“星期几”文本
    • WEEKDAY + 条件格式:周末自动高亮、异常日期提示