MICROSOFT

EP03. “Holidays 自动计算节假日日期”

首页 Microsoft 工具 Excel · Basics · Templates · EP03
约 5 分钟· #EP03#Excel#Templates
🔒 登录后可标记已读
  • 延续 EP02 的万年历,这篇教怎么让 Excel 自动算出美国节假日在任意年份对应的具体日期
  • 涵盖两类节日:元旦、独立日、退伍军人日、圣诞节这类固定日期的节日,以及感恩节、马丁·路德·金纪念日这类"第几个星期几"的节日
  • 前置知识是 CHOOSE 和 WEEKDAY 函数

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


前置函数:CHOOSE

CHOOSE 函数根据一个位置编号,从一串值列表里返回对应的值。例如:

=CHOOSE(3,"Car","Train","Boat","Plane")

返回第 3 个值 "Boat"。


前置函数:WEEKDAY

WEEKDAY 函数把日期换算成星期几,返回 1(星期日)到 7(星期六)的数字。


基础用法:输入年份自动算固定节日

  1. 在指定单元格(例如 C2)输入年份,例如 2025
  2. 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:

  1. Holidays