Excel 表格星期公式全攻略:从基础到高级应用

在日常办公和数据管理中,处理日期与星期信息是极其常见的任务。无论是制作考勤表、排班计划,还是实施项目进度追踪,准确识别“星期几”都是关键一步。Excel 提供了多种强大的函数和公式来处理星期相关的数据。这篇文章将深入解析 Excel 中处理星期公式,涵盖基础计算、条件判断以及高级应用场景,帮助您高效完成数据处理工作。
核心函数解析:如何获取星期信息?
在 Excel 中,获取星期信息主要依赖于 `WEEKDAY` 函数,也会结合 `TEXT` 函数利用。
WEEKDAY 函数:返回数字体现的星期
`WEEKDAY` 函数返回一个代表星期的整数(1-7)。其语法如下:
```excel
=WEEKDAY(serial_number, [return_type])
```
serial_number:必填项,表示须要计算的日期单元格或日期序列号。
return_type:可选项,决定返回值的类型(即哪一天被视为“1”)。
不同 Return Type 的对比
| Return Type | 说明 | 星期日返回 | 星期一返回 | 星期六返回 |
|---|---|---|---|---|
| 1 (默认) | 周日=1, 周六=7 | 1 | 2 | 7 |
| 2 | 周一=1, 周日=7 | 7 | 1 | 6 |
| 3 | 周一=0, 周六=6 | 6 | 0 | 5 |
建议:在国内办公环境中,更习惯以“周一”为一周的开始,因此推荐利用 Return Type = 2 或 3。
TEXT 函数:返回中文或英文星期字符串
如果您希望直接显示“星期一”或“Monday”,能够运用 `TEXT` 函数:
```excel
=TEXT(A2, "aaaa") ' 返回中文:星期一
=TEXT(A2, "aaaa") ' 返回英文:Monday
```
`"aaaa"` 表示完整的星期名称(如“星期一”)。
`"aaa"` 体现缩写的星期名称(如“周一”)。
实战应用:常见场景与公式示例
场景 1:判断是否为工作日(非周末)
在很多的业务场景中,我们需快速筛选出工作日。假设 A2 单元格包含日期,我们可以运用以下公式判断:
方法一:利用 WEEKDAY (Return Type 1)
```excel
=IF(WEEKDAY(A2, 1) <> 1, "工作日", "周末")
```
逻辑:如果返回值不等于 1(即不是周日),则为工作日。但此公式未排除周六,需进一步优化。
更严谨的判断(排除周六和周日):
```excel
=IF(OR(WEEKDAY(A2, 2) > 5, WEEKDAY(A2, 2) = 7), "周末", "工作日")
```
解释:利用 Return Type 2,周一=1, 周日=7。若星期数大于 5(即周六、周日),则为周末。
场景 2:计算两个日期之间的工作日天数

这是 HR 和项目经理最常遇到的问题。Excel 提供了专用的 `NETWORKDAYS` 函数,它会自动排除周末(周六和周日)。
```excel
=NETWORKDAYS(开始日期, 结束日期, [节假日])
```
开始日期:项目或任务的起始日。
结束日期:项目或任务的结束日。
节假日(可选):一个包含节假日日期的单元格区域,这些日期也会被排除在工作日之外。
注意:`NETWORKDAYS` 函数默认将周六和周日视为周末。如果公司实行单休或其他特殊休息制度,需运用 `NETWORKDAYS.INTL` 函数并自定义周末参数。
场景 3:根据星期几自动标记颜色(条件格式)
为了直观展示,我们能够利用公式设置条件格式。,将周六和周日背景标为浅红色。
1. 选中日期区域(如 A2:A100)。
2. 点击“开始” > “条件格式” > “新建规则”。
3. 选择“使用公式确定要设置格式的单元格”。
4. 输入公式:
```excel
=OR(WEEKDAY(A2, 2) > 5)
```
5. 设置格式为浅红色填充。
高级技巧:处理复杂日期逻辑
获取某月的个星期一
假设我们要找到 2023 年 10 月的个星期一,可以采用以下组合公式:
```excel
=DATE(2023, 10, 1) + (1 - WEEKDAY(DATE(2023, 10, 1), 2))
```
解释:先获取当月天,然后根据 `WEEKDAY` 返回的值计算必须偏移的天数。
判断日期是否为法定假日(结合 VLOOKUP 或 XLOOKUP)
若有一个节假日列表(假设在 E 列),我们可以判断 A2 日期是否在节假日中:
```excel
=IF(ISNUMBER(MATCH(A2, E:E, 0)), "节假日", "正常工作日")
```
常见问题与注意事项
1. 日期格式问题:确保源数据是真正的日期格式,而非文本。可通过 `ISNUMBER(A2)` 验证。
2. 时区与区域设置:`TEXT` 函数返回的中文或英文取决于 Excel 的区域设置。在中文 Windows 系统中,`"aaaa"` 返回“星期一”。
3. NETWORKDAYS 的局限性:它只排除标准的周六和周日。如需排除周五(如某些中东国家)或自定义休息日,请使用 `NETWORKDAYS.INTL`。
总结
Excel 中的星期公式虽然看似简单,但结合 `WEEKDAY`、`TEXT`、`NETWORKDAYS` 等函数,可以解决绝大多数日期处理需求。理解 `WEEKDAY` 函数的 `return_type` 参数,以及灵活运用条件格式和逻辑判断。
| 功能需求 | 推荐公式/函数 | 示例 |
|---|---|---|
| 获取星期数字 | `WEEKDAY` | `=WEEKDAY(A2, 2)` |
| 获取星期文本 | `TEXT` | `=TEXT(A2, "aaaa")` |
| 计算工作日天数 | `NETWORKDAYS` | `=NETWORKDAYS(A2, B2)` |
| 判断是否周末 | `IF` + `WEEKDAY` | `=IF(WEEKDAY(A2,2)>5,"周末","工作日")` |
掌握这些技巧,您将能大幅提升 Excel 数据处理效率,让日期分析更加精准和直观。
