跳至主要内容

Excel公式:计算两个日期之间的星期几

Author: Sun Last Modified: 2025-05-07

doc-count-specific-weekday-1

本教程提供了在Excel中计算两个给定日期之间特定工作日的公式。

如果你想跟随本教程,请下载示例电子表格。
doc-sample

通用公式:

SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(start_date&":"&end_date)))=week_day))

语法和参数

Start_date, end_date: 你想要计算特定工作日的两个日期。
Week_day: 表示你想要计算的两个日期之间的工作日的数字。

工作日数字

工作日 数字
星期日
星期一
星期二
星期三
星期四
星期五
星期六

返回值

该公式返回一个数值。

公式的工作原理

B3和C3单元格是你想计算特定工作日的两个日期,E3是工作日编号,请使用以下公式:

=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(B3&":"&C3)))=E3))

按下 Enter 键获取结果,如果需要,拖动自动填充柄将公式应用到其他单元格。
doc-count-specific-weekday-2

doc-count-specific-weekday-3

解释

INDIRECT函数:返回有效的表格引用。

ROW函数:返回引用的行号。

公式 ROW(INDIRECT(B3&":"&C3)) 返回如下数组结果:{43933;43934;43935;43936;43937;43938;43939;43940;43941;43942;43943;43944}

由于B3:C3可以看作日期范围43933:43944(Excel中日期以数字形式存储)。

WEEKDAY函数:从给定日期获取星期几(1-7)的数字。

公式 WEEKDAY(ROW(INDIRECT(B3&":"&C3)) 返回如下数组结果:{1;2;3;4;5;6;7;1;2;3;4;5}

SUMPRODUCT函数:返回相乘并求和后的数组结果。

现在公式计算如下:

=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(B3&":"&C3)))=E3))
=SUMPRODUCT(--({1;2;3;4;5;6;7;1;2;3;4;5}=E3))
=SUMPRODUCT(--{FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE})
=1


相关公式

相关函数


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于以下功能彻底改变数据分析方式:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用Kutools函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  四舍五入无需公式 ...
超级VLookup多条件  |  多值  |  跨多个工作表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同的单元格 ...
精选功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并数据  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前15的工具集12个 文本 工具添加文本删除特定字符 ...)  |  50多种 图表 类型甘特图 ...)  |  40多种实用 公式基于生日计算年龄 ...)  |  19个 插入 工具插入二维码从路径插入图片 ...)  |  12个 转换 工具小写金额转大写汇率转换 ...)  |  7个 合并与拆分 工具高级合并行分割Excel单元格 ...)  |  ... 还有更多

Kutools for Excel拥有超过300种功能,确保您需要的功能只需一键即可实现...


Office Tab - 在Microsoft Office(包括Excel)中启用标签式阅读和编辑

  • 一秒内切换数十个打开的文档!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的工作效率将提高50%。
  • 为Office(包括Excel)带来高效的标签页,就像Chrome、Edge和Firefox一样。