如何在 Excel 中突出显示周末和节假日?
作者:互联网
2026-04-16
在处理 Excel 中的每日记录表时,通常需将周末或公共节假日与普通工作日进行视觉区分,以便更高效地审阅数据。这种高亮方式在考勤表、项目时间线或业务日志等场景中尤为实用,可显著提升数据的直观性和后续分析效率。Excel 提供了多种实现方法,包括使用条件格式、添加自定义辅助公式列,或借助 VBA 实现更高级的自动化。选择最适合的方案,取决于您的表格结构、新增数据的频率,以及节假日列表是否频繁更新。
- 使用使用条件格式突出显示周末和节假日
- Excel 公式 – 使用辅助列标记周末和节假日
- VBA 代码 – 自动为周末和节假日着色
使用使用条件格式突出显示周末和节假日
Excel 的条件格式功能可自动高亮日期记录中的周末(通常为星期星期日)及节假日,无需在数据中输入任何计算公式。此方法特别适合经常审阅或更新工作表的用户,能为非工作日提供即时、动态的颜色提示。
要为周末和节假日设置使用条件格式,请按以下步骤操作:
1. 选择您要高亮显示的日期范围。
2. 转到开始选项卡,点击使用条件格式,然后选择新建规则,即可打开规则编辑器。参见截图:

3. 在新建格式规则对话框中:
- 在类型列表中选择使用公式确定要设置格式的单元格规则。
- 在公式输入框中,输入以下公式:=NETWORKDAYS($A2,$A2,$F$2:$F$6)=0
- 单击格式按钮,即可设置高亮样式。

4. 在设置单元格格式窗口中,切换到填充选项卡,为周末和节假日选择一种背景颜色,即可快速区分非工作日与普通工作日。

5. 单击确定两次以关闭对话框。所选高亮将自动应用于所选区域内匹配周末或节假日列表的日期。您可随时通过编辑节假日范围来更新节假日,格式将随之自动更新。

提示与故障排除:如果高亮未显示,请仔细检查日期格式(该公式仅适用于真正的 Excel 日期);格式不匹配可能导致规则失效。若应用于多列,请相应调整公式。此外,如数据跨越多年,请根据需要更新节假日列表,确保非工作日设置准确无误。
优势:无需额外列或手动操作;表格扩展或节假日列表更新时,内容将自动动态刷新。
潜在限制:条件格式在每个工作表中存在最大规则数量限制(极少触及),且在大型数据集中使用过于复杂的公式可能影响工作簿性能。
借助 KUTOOLS AI 解锁 Excel 的神奇功能
- 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
- 自定义公式:生成量身定制的公式,助您优化工作流程!
- VBA 编码:轻松编写并运行 VBA 代码。
- 公式解析:轻松掌握复杂公式,一目了然!
- 文本翻译:轻松打破电子表格中的语言障碍!
Excel 公式 – 使用辅助列标记周末和节假日
对于希望更精细控制颜色编码,或需按工作日/非工作日进行排序与筛选的用户,使用带公式的辅助列是一种可靠之选。该方法可清晰标记每一行为周末、节假日或普通工作日,并支持筛选、手动格式化及数据汇总。
当仅靠颜色编码难以满足需求,或您需直接统计周末与节假日总数时,此方法尤为实用。
假设您的日期位于 A 列(从第 2 行开始),节假日列表在 F2:F6. 请在日期列旁插入一个新列,并输入标题“日期类型”。
1. 在辅助列的 B2 单元格中输入以下公式:
=IF(OR(WEEKDAY(A2,2)>=6,COUNTIF($F$2:$F$6,A2)>0),"Weekend/Holiday","Workday") 此公式对每个日期执行两项检查:
-WEEKDAY(A2,2)>=6:将星期六(6)和星期日(7)视为周末(若您的周末不同,请相应调整)。
-COUNTIF($F$2:$F$6,A2)>0:检查该日期是否与节假日列表中的某一天匹配。
2. 然后向下拖动填充柄,将公式应用到其他行。填充完成后,可通过“周末/节假日”筛选表格,快速隔离或手动高亮这些行;您也可基于此列应用条件格式,实现自动着色。
提示:如果您的周末安排不同,请调整 WEEKDAY 函数的逻辑(例如,用 1 表示星期日,或根据您所在地区采用对应的数字)。请务必确保节假日列表保持最新。若数据区域发生变化,请根据需要重新应用填充或复制操作。
优势:辅助列支持更多筛选条件和报表功能设置,可轻松识别、计数或按需着色。
缺点:需在数据中添加额外列;若不结合其他条件格式使用,则需手动填充颜色。
VBA 代码 – 自动为周末和节假日着色
当您需要频繁更新日期范围,或希望自动化突出显示周末和节假日(超出公式与条件格式的能力)时,使用简单的 VBA 宏极为高效。此方法尤其适合管理长列表或需重复生成工作表的用户。
借助宏,Excel 能立即根据您指定的日期范围和节假日列表,为周末及节假日日期自动着色。您可随时在代码中调整高亮颜色,并在数据更新后重新运行宏。
1. 单击开发工具 > Visual Basic,在弹出的 Microsoft Visual Basic for Applications 窗口中,选择插入 > 模块。
2. 将以下代码复制并粘贴到新建的模块中:
Sub ShadeWeekendsAndHolidays()
Dim rngDates As Range
Dim rngHolidays As Range
Dim cell As Range
Dim xTitleId As String
xTitleId = "KutoolsforExcel"
On Error Resume Next
Set rngDates = Application.InputBox("Select the range with dates:", xTitleId, Selection.Address, Type:=8)
Set rngHolidays = Application.InputBox("Select the range with holiday dates:", xTitleId, , Type:=8)
On Error GoTo 0
If rngDates Is Nothing Then Exit Sub
If rngHolidays Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each cell In rngDates
If IsDate(cell.Value) Then
If Weekday(cell.Value, vbMonday) >= 6 Or Not IsError(Application.Match(CDbl(cell.Value), rngHolidays, 0)) Then
cell.Interior.Color = RGB(255, 199, 206) ' Light red fill; adjust as needed
Else
cell.Interior.ColorIndex = xlNone ' Remove fill from regular days
End If
End If
Next cell
Application.ScreenUpdating = True
End Sub 3. 按下 F5 键运行此代码,系统将提示您先选择日期单元格,再选择节假日单元格,请按屏幕提示操作。
该宏将以填充颜色高亮显示周末(星期六/星期日)及节假日(依据您提供的列表)。如需更换高亮颜色,只需调整代码中的 RGB(255,199,206) 值即可。
提示:
若不慎选错范围,只需重新运行宏即可——所有非匹配单元格在所选区域中的原有填充色将自动重置。
请确保您的日期和节假日使用的是正确的 Excel 日期格式(而非文本)!
优势:节省重复性任务的时间,并提供极大的灵活性,无需手动重新应用格式。
缺点:需为工作簿启用宏;不熟悉 VBA 的用户应在运行前保存文件,并先在备份副本上尝试。
更多
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Microsoft Excel:通过 API 实现电子表格自动化 - Openclaw Skills
Excel / XLSX: 专业电子表格自动化 - Openclaw Skills
Excel 周报:Power Query 报告 - Openclaw Skills
xlsx-cn: 高级 Excel 电子表格处理 - Openclaw Skills
xlsx-pro: 专业 Excel 自动化与财务建模 - Openclaw Skills
电子表格:Excel 和 Google 表格自动化 - Openclaw Skills
自动化 Excel:电子表格自动化与数据处理 - Openclaw Skills
CSV 转 Excel 转换器:专业格式化与多工作表支持 - Openclaw Skills
考勤表生成器:自动化人力资源 Excel 报表 - Openclaw Skills
如何在 Excel 中根据多个条件查找并返回最大值?
AI精选
