Table of contents
如果你正在寻找一个从日期中获取星期的Excel函数,那么你已经找到了正确的页面。 本教程将教你如何使用Excel中的WEEKDAY公式将日期转换为工作日名称,过滤,突出显示和计算周末或工作日,以及更多。
在Excel中,有多种处理日期的函数。 周日函数(WEEKDAY)对计划和安排特别有用,例如,确定一个项目的时间框架,并自动从总数中去除周末。 因此,让我们逐一运行这些例子,看看它们如何帮助你应对Excel中各种与日期有关的任务。
WEEKDAY--Excel函数中的星期
Excel的WEEKDAY函数是用来返回从一个给定日期开始的一周中的某一天。
结果是一个整数,默认范围是1(周日)到7(周六)。 如果你的业务逻辑需要一个不同的枚举,你可以配置公式,从一周中的任何其他日子开始计算。
WEEKDAY函数在Excel 365到2000的所有版本中都可用。
WEEKDAY函数的语法如下。
WEEKDAY(serial_number, [return_type])在哪里?
序号 (required) - 你想转换为工作日数字的日期,它可以作为代表日期的序列号,作为Excel理解的格式的文本字符串,作为对包含日期的单元格的引用,或者通过使用DATE函数提供。
返回_类型 (可选) - 决定使用一周中的哪一天作为第一天。 如果省略,默认为太阳-星期六一周。
以下是所有支持的列表 返回类型 价值。
返回_类型 | 返回的数量 |
---|---|
1或省略 | 从1(星期日)至7(星期六)。 |
2 | 从1(星期一)至7(星期日) |
3 | 从0(周一)到6(周日)。 |
11 | 从1(星期一)至7(星期日) |
12 | 从1(星期二)至7(星期一)。 |
13 | 从1(星期三)至7(星期二)。 |
14 | 从1(星期四)至7(星期三)。 |
15 | 从1(星期五)至7(星期四)。 |
16 | 从1(星期六)至7(星期五)。 |
17 | 从1(星期日)至7(星期六)。 |
注:该 返回类型 数值11至17是在Excel 2010中引入的,因此它们不能在早期版本中使用。
Excel中的基本WEEKDAY公式
首先,让我们看看如何使用WEEKDAY公式的最简单形式,从日期中获得日号。
例如,要从C4中的日期中获得工作日,默认为周日-周六的一周,公式为:。
=WEEKDAY(C4)
如果你有一个代表日期的序列号(例如由DATEVALUE函数带来的),你可以在公式中直接输入这个数字。
=weekday(45658)
另外,你也可以直接在公式中以文本字符串的形式输入日期,并加上引号。 只要确保使用Excel期望并能解释的日期格式。
=weekday("1/1/2025")
或者,使用DATE函数,以100%可靠的方式提供源日期。
=weekday(date(2025, 1,1))
要使用默认的日-日以外的日期映射,请在第二个参数中输入适当的数字。 例如,要从星期一开始计算日期,公式为:。
=weekday(c4, 2)
在下图中,所有的公式都返回2025年1月1日对应的星期,在Excel内部存储为数字45658。 根据第二个参数中设置的值,公式输出不同的结果。
乍一看,似乎WEEKDAY函数返回的数字没有什么实际意义。 但让我们从不同的角度来看,并讨论一些解决现实生活任务的公式。
如何将Excel日期转换为工作日名称
根据设计,Excel的WEEKDAY函数以数字形式返回星期几。 要把星期几变成日期名称,请使用TEXT函数。
为了获得 全天的名字 ,使用 "ddd "格式代码。
TEXT(WEEKDAY( 日期 ), "dddd")返回 缩写的日名 ,格式代码为 "ddd"。
TEXT(WEEKDAY( 日期 ), "ddd")例如,要将A3中的日期转换为工作日的名称,公式为:。
=TEXT(WEEKDAY(A3), "ddd")
或
=TEXT(WEEKDAY(A3), "ddd")
另一个可能的解决方案是将WEEKDAY与CHOOSE函数一起使用。
例如,要从A3的日期中得到一个缩写的工作日名称,公式如下。
=CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")
这里,WEEKDAY返回一个从1(太阳)到7(星期六)的序号,CHOOSE从列表中选择相应的值。 由于A3(星期三)中的日期对应于4,CHOOSE输出 "Wed",这是列表中的第四个值。
虽然CHOOSE公式的配置稍显繁琐,但它提供了更大的灵活性,让你以任何你想要的格式输出日名。 在上面的例子中,我们显示的是缩写的日名。 相反,你可以提供全名、自定义缩写或甚至不同语言的日名。
提示:将日期转换为工作日名称的另一个简单方法是应用自定义日期格式。 例如,代码格式 "ddd, mmmm d, yyyy "将使日期显示为" 2025年1月3日,星期五 ",而 "ddd "将只显示" 星期五 ".
用Excel WEEKDAY公式查找和过滤工作日和周末
在处理一长串日期时,你可能想知道哪些是工作日,哪些是周末。
拟 确定周末和工作日 在Excel中,用嵌套的WEEKDAY函数建立一个IF语句。 例如。
=IF(WEEKDAY(A3, 2)<6, "工作日", "周末")
这个公式进入A3单元格,并根据需要向下复制到多个单元格。
在WEEKDAY公式中,你设置了 返回类型 所以,如果工作日的数字小于6(周一到周五),该公式就会返回 "工作日",否则就会返回 "周末"。
拟 过滤周末或工作日 将Excel过滤器应用于你的数据集( 数据 标签> 过滤器 )并选择 "周末 "或 "工作日"。
在下面的截图中,我们将工作日过滤掉了,所以只有周末是可见的。
如果你的组织的某些区域办事处按照不同的时间表工作,休息日不在周六和周日,你可以很容易地调整WEEKDAY公式以满足你的需要,指定一个不同的 返回类型 .
例如,为了治疗 星期六 和 星期一 作为周末,设置 返回类型 到12,所以你会得到 "星期二(1)到星期一(7)"的星期类型。
=IF(WEEKDAY(A2, 12)<6, "工作日", "周末")
如何在Excel中突出显示周末工作日和
为了一目了然地发现工作表中的周末和工作日,你可以让它们自动以不同的颜色显示出来。 为此,使用前面例子中讨论的工作日/周末公式与Excel条件格式化。 由于条件是隐含的,我们只需要核心的WEEKDAY函数而不需要IF包装。
拟 亮点周末 (周六和周日)。
=WEEKDAY($A2, 2)<6
拟 亮点工作日 (周一至周五)。
=WEEKDAY($A2, 2)>5
其中A2是选定区域的左上角单元格。
要设置条件格式化规则,步骤如下。
- 选择日期列表(在我们的例子中是A2:A15)。
- 关于 首页 选项卡,在 风格 组,点击 条件性格式化 > 新规则 .
- 在 新的格式化规则 对话框,选择 使用一个公式来决定哪些单元格需要格式化 .
- 在 格式化数值,其中该公式 为真框,输入上述周末或工作日的公式。
- 点击 格式 按钮并选择所需的格式。
- 点击 认可 两次,以保存更改并关闭对话窗口。
关于每个步骤的详细信息,请参见如何用公式设置条件格式化。
结果看起来很不错,不是吗?
如何在Excel中计算工作日和周末
要想得到日期列表中的工作日或周末的数量,可以使用WEEKDAY函数与SUM结合使用。 例如::
拟 计算周末 ,D3中的公式是。
=SUM(--(WEEKDAY(A3:A20, 2)>5))
拟 计算工作日 ,D4中的公式采取这种形式。
=SUM(--(WEEKDAY(A3:A20, 2)<6))
在原生处理数组的Excel 365和Excel 2021中,这可以作为一个普通的公式,如下图所示。 在Excel 2019和更早的版本中,按Ctrl + Shift + Enter使其成为一个数组公式。
这些公式是如何工作的。
WEEKDAY函数带有 返回类型 设置为2,为A3:A20范围内的每个日期返回一个从1(周一)到7(周日)的天数。 逻辑表达式检查返回的数字是否大于5(周末)或小于6(工作日)。 这个操作的结果是一个TRUE和FALSE值的数组。
双重否定(--)将逻辑值胁迫为1和0,然后SUM函数将它们相加。 鉴于1(TRUE)代表要计算的天数,0(FALSE)代表要忽略的天数,你会得到想要的结果。
提示:要计算出 两个日期之间的工作日 ,使用NETWORKDAYS或NETWORKDAYS.INTL函数。
如果是工作日,那么,如果是周六或周日,那么
最后,让我们来讨论一个更具体的案例,说明如何确定一周中的哪一天,如果是周六或周日,那么就做一些事情,如果是工作日,那么就做一些其他事情。
IF(WEEKDAY( 电池 ,2)>5。 如果_周末_那么 , 如果_weekday_then )假设你要为那些在休息日做了一些额外工作的员工计算报酬,所以你需要对工作日和周末适用不同的报酬率。 这可以用下面的IF语句完成。
- 在 逻辑_测试 参数,嵌套WEEKDAY函数,检查给定的一天是工作日还是周末。
- 在 value_if_true 论点,将工作时间乘以周末费率(G4)。
- 在 value_if_false 参数,将工作时数乘以工作日率(G3)。
D3中的完整公式采取这种形式。
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
为了使公式能正确地复制到下面的单元格,请确保用$符号锁定速率单元格地址(如$G$4)。
WEEKDAY功能不工作
一般来说,WEEKDAY公式可能返回两个常见的错误。
#VALUE!如果不是这样,就会发生错误。
- 序号 或 返回类型 为非数字型。
- 序号 不在支持的日期范围内(1900到9999)。
#NUM!错误发生在 返回类型 不在允许的范围内(1-3或11-17)。
这就是如何在Excel中使用WEEKDAY函数来操作星期。 在下一篇文章中,我们将探讨Excel函数如何操作更大的时间单位,如周、月和年。 请继续关注并感谢您的阅读!
供下载的实践工作手册
Excel中的WEEKDAY公式--实例(.xlsx文件)