EP03. “Holidays 自动计算节假日日期”
🔒 登录后可标记已读- 延续 EP02 的万年历,这篇教怎么让 Excel 自动算出美国节假日在任意年份对应的具体日期
- 涵盖两类节日:元旦、独立日、退伍军人日、圣诞节这类固定日期的节日,以及感恩节、马丁·路德·金纪念日这类"第几个星期几"的节日
- 前置知识是 CHOOSE 和 WEEKDAY 函数
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
前置函数:CHOOSE
CHOOSE 函数根据一个位置编号,从一串值列表里返回对应的值。例如:
=CHOOSE(3,"Car","Train","Boat","Plane")
返回第 3 个值 "Boat"。
前置函数:WEEKDAY
WEEKDAY 函数把日期换算成星期几,返回 1(星期日)到 7(星期六)的数字。
基础用法:输入年份自动算固定节日
- 在指定单元格(例如 C2)输入年份,例如 2025
- Excel 自动算出该年的元旦(1 月 1 日)、独立日(7 月 4 日)、退伍军人日(11 月 11 日)、圣诞节(12 月 25 日)等日期是星期几,这些节日日期本身固定,只需要用 DATE 函数拼出对应年份即可
进阶用法:感恩节(11 月第四个星期四)
感恩节没有固定日期,需要先用 WEEKDAY 算出当年 11 月 1 日是星期几,再用 CHOOSE 找出「到第一个星期四」要加几天的偏移量,最后再加 3 周(21 天)跳到第四个星期四。公式逻辑:
DATE(C2,11,1) + 偏移天数(由 CHOOSE 根据 WEEKDAY 结果决定) + 21
以 2025 年为例:1/1/2025 + 21 + 5 = 11/27/2025(这里的示例数字对应 2025 年 11 月的实际推算结果)
进阶用法:马丁·路德·金纪念日(1 月第三个星期一)
逻辑跟感恩节相同,只是目标改成"星期一"、跳的周数改成 2 周(14 天,因为是第三个而不是第四个):
DATE(C2,1,1) + 偏移天数(由 CHOOSE 根据 WEEKDAY 结果决定) + 14
以 2025 年为例:1/1/2025 + 14 + 5 = 1/20/2025
[截图:完成后的节假日表格,输入年份后各节日自动算出对应日期的效果]
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| CHOOSE | =CHOOSE(index_num, value1, [value2], ...) | 依位置编号返回对应值 | =CHOOSE(3,"Car","Train","Boat","Plane") → Boat |
| WEEKDAY | =WEEKDAY(serial_number, [return_type]) | 返回日期对应的星期几(1=星期日) | =WEEKDAY(DATE(2025,1,1)) → 4 |
学完你会
- ✅ 分得清固定日期节日(用 DATE 直接拼)和「第几个星期几」节日(要用 CHOOSE + WEEKDAY 推算)的差异
- ✅ 会用 CHOOSE 根据 WEEKDAY 结果找出正确的偏移天数
- ✅ 换年份时公式会自动重算,不用每年手动改节日日期
常见错误
- 把「第几个星期几」类型的节日(感恩节、马丁·路德·金纪念日)当成固定日期硬编码,换年份后日期就不准了
- CHOOSE 里列出的 7 个偏移量顺序对应 WEEKDAY 的 1~7,如果顺序抄错会导致算出的日期整个偏移
- 没有意识到 WEEKDAY 默认以星期日为 1,如果目标节日是"星期一/星期四"这类非星期日的节日,偏移量要对应调整
Sources
Blog / Website: