提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何计算Excel中两个日期之间的周末/周日数?

有时候,我们需要知道两个日期之间有多少具体的工作日。 例如,我有两个日期:开始日期是1 / 1 / 2014,结束日期是2 / 15 / 2014,现在我想知道在此期间周日或周一或周二等发生了多少次。 也许这对我们来说有些困难,但在这里,我可以为你谈谈一些有效的方法。

计算两个日期之间特定工作日/周末的数量

计算特定月份中特定工作日/周末的数量

批量计算给定月份中每个工作日的数量

计算两个日期之间的所有周末/工作日/特定星期几的数字

在Excel中计算两个日期之间的星期几(星期一,星期六,星期日等)

Office选项卡在Office中启用选项卡式编辑和浏览,使您的工作更轻松......
Kutools for Excel - 最佳办公生产力工具将解决您的大部分Excel问题
  • 重用任何东西: 将最常用或最复杂的公式,图表和其他任何内容添加到您的收藏夹中,并在将来快速重复使用它们。
  • 超过20文本功能: 从文本字符串中提取数字; 提取或删除部分文本; 将数字和货币转换为英语单词...
  • 合并工具:多个工作簿和表格合二为一; 合并多个单元格/行/列而不丢失数据; 合并重复行和总和...
  • 拆分工具:根据价值将数据拆分为多个表格; 一个工作簿到多个Excel,PDF或CSV文件; 一列到多列......
  • 粘贴跳过 隐藏/过滤行; 数和总和 按背景颜色; 创建邮件列表和 通过Cell的价值发送电子邮件...
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按周,日,频率等; 筛选 通过大胆,公式,评论......
  • 超过300强大的功能; 适用于Office 2007-2019和365; 支持所有语言; 在公司轻松部署; 全功能60天免费试用。

箭头蓝色右泡 用公式计算两个日期之间特定的平日/周末的数量

假设我有以下两个日期,我需要统计他们之间有多少星期天。 选择一个空白单元格,输入这个公式 = INT((WEEKDAY($ B $ 1- 1) - $ B $ 1 + $ B2)/ 7) ,然后按Enter键。 现在你会得到两个日期之间的星期天的数量。 看截图:

备注:

(1。)在上面的公式中,B1是开始日期和 B2 表示结束日期。

(2)红色 1 代表星期天。 在此公式中,可以用1和1之间的其他数字替换数字7。 (1是星期天,2是星期一,3是星期二,4是星期三,5是星期四,6是星期五,7是星期六)


箭头蓝色右泡 使用用户定义功能计算给定月份中特定工作日/周末的数量

您还可以创建一个用户自定义函数来计算除上述公式之外的特定年份和月份中的特定工作日。

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.

2。 点击 插页 > 模块,并将以下代码粘贴到 模块窗口.

Public Function TotalDays(pYear As Integer, pMonth As 
Integer, pDay As Integer)
'Update 20140210
Dim xindex As Integer
Dim endDate As Integer
endDate = Day(DateSerial(pYear, pMonth + 1, 0))
For xindex = 1 To endDate
    If Weekday(DateSerial(pYear, pMonth, xindex)) = pDay Then
        TotalDays = TotalDays + 1
    End If
Next
End Function

3。 保存此代码并返回到工作表,然后在空白单元格中输入此公式 =总计日期(年,月, 1) 。 在这个例子中,我会计算八月份2015有多少个星期天,所以我可以将这个公式应用到这里 = TotalDays(2015,8, 1),然后按 输入 关键,你会得到8月2015有多少个星期天。 看截图:

备注:

(1)在公式中, 2014 是今年和 1 表示月份,您可以根据需要更改它们。

(2。)另一个红色 1 代表星期天,您可以用1到1的其他数字替换数字7(1是星期天,2是星期一,3是星期二,4是星期三,5是星期四,6是星期五,7是星期六)


箭头蓝色右泡 使用Kutools for Excel批量计算给定月份中所有工作日的数量

此方法将应用Kutools for Excel的一些实用程序将给定月份中的日期转换为周日名称,然后轻松地批量计算给定月份中的这些周日名称。

1。 列出给定月份中的所有日期。 在我们的例子中,给定的月份是2014的一月份,以便我们在单元格A2014中键入第一个日期1 / 1 / 2,然后将该单元格的填充句柄向下拖到2014 / 1 / 31。 看截图:

2。 继续选择这些日期,然后点击 Kutools > 格式 > 应用日期格式; 然后在打开的“应用日期格式”对话框中单击以突出显示 星期三 or 星期三 日期格式 框中,然后单击 Ok 按钮。 见上面的截图:

3。 继续选择显示为星期几名称的日期,然后单击 Kutools > 到实际 将日期转换为文本。

4。 向原始日期列添加一列,然后键入列名称 计数。 选择日期列和计数列,然后单击 Kutools > 内容 > 先进的组合行.

5。 在打开“基于列的组合行”对话框中,单击以突出显示“日期”列,然后单击 首要的关键; 单击突出显示“计数”列,然后单击 计算 > 计数; 点击 Ok 按钮。

现在你会看到它已经计算了每个工作日和每个周末的数字。 看截图:

doc数周末周末11

Kutools for Excel - 包括多个用于Excel的300便捷工具。 全功能免费试用60天,无需信用卡! 现在加入


箭头蓝色右泡 使用Kutools for Excel计算两个日期之间的所有周末/工作日/特定的一周中的数字

其实,我们可以申请Excel的Kutools 计算两个日期之间的周末 式, 计数两个日期之间的平日 公式,和 计算特定工作日的数量 公式可快速计算Excel中日期范围内的所有周末,周末或特定星期几的数量。

在Excel中计算两个日期之间的周末数(周六和周日)

选择一个空白单元格,单击 Kutools > 公式 > 计算两个日期之间的周末 打开“Formula Helper”对话框。 然后将开始日期和结束日期指定到相应的框中,然后单击 Ok 按钮。 现在你会得到这两个日期之间所有周末的数量。 看截图:

Kutools for Excel - 包括多个用于Excel的300便捷工具。 全功能免费试用60天,无需信用卡! 现在加入

在Excel中计算两个日期之间的平日数(不包括星期六和星期日)

选择一个空白单元格,单击 Kutools > 公式 > 计数两个日期之间的平日 打开“Formula Helper”对话框。 然后将开始日期和结束日期指定到相应的框中,然后单击 Ok 按钮。 现在您将得到指定日期范围内除周末外的所有天数。 看截图:

doc计算周日周末2 2

Kutools for Excel - 包括多个用于Excel的300便捷工具。 全功能免费试用60天,无需信用卡! 现在加入

在Excel中计算两个日期之间的星期几(星期一,星期六,星期日等)

选择一个空白单元格,单击 Kutools > 公式 > 计算具体的工作日数量 打开“Formula Helper”对话框。 接下来,将开始日期和结束日期指定到相应的框中,在中输入数字(从1到7) 平日 框中,然后单击 Ok 按钮。 现在您将得到指定日期范围内除周末外的所有天数。 看截图:

注意:1表示星期日,2-5表示星期一至星期五,7表示星期六。

Kutools for Excel - 包括多个用于Excel的300便捷工具。 全功能免费试用60天,无需信用卡! 现在加入


箭头蓝色右泡演示:统计Excel中两个日期之间的周末/周日数

在这个视频中, Kutools Kutools Plus 选项卡添加 Kutools for Excel。 如果需要,请点击 60天免费试用,不受限制!

Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Mohamed · 2 years ago
    Let's say you want to calculate the 3rd Thursday of the month and assume the date of the first of the month is in cell A1.

    We need to first work out the date of the Thursday in the week of A1. Because Thursday is the 5th day of the week, we use:

    [b]=[u]A1-WEEKDAY(A1)+5[/u][/b]

    Then if this Thursday falls before A1, we need to add 7 using

    [b](([u]A1-WEEKDAY(A1)+5[/u])
  • To post as a guest, your comment is unpublished.
    Jon · 2 years ago
    What about a formula that returns the actual date of the first Wed of each month, Or the 2nd and 3rd tuesday of each month?
    Or every 3rd tuesday?

    I want to be able to put in my own start and end dates and then get the actual DATES (not the count) returned to me. Any ideas?
  • To post as a guest, your comment is unpublished.
    KAMBLE VIJAY · 3 years ago
    hi sir,
    i want to calculate no. of weeks in excel between two dates, but Dose not see right weeks as per date
    for example: I enterd the date 01/01/2016 ( Friday) and second date 14/01/2016( thursday) no of weeks showing = 2 weeks.
    but i want to show exact 2 weeks completed 15/01/2016 other wise show previse no fo weeks.
    • To post as a guest, your comment is unpublished.
      Mohamed · 3 years ago
      Let the start and end dates be in cells A1 and A2, respectively. This should work:

      =INT((A2-A1)/7)
  • To post as a guest, your comment is unpublished.
    Rob Mormile · 4 years ago
    Is it possible to have the start date set to "=today()" and the end date, for example, the 22nd of the current cycle. As the date returns to the 23rd, refresh the formula to the following 22nd?
    • To post as a guest, your comment is unpublished.
      Mohamed · 3 years ago
      Assuming cycle refers to month, this should work for the end date:

      DATE(YEAR(TODAY()),MONTH(TODAY())+IF(DAY(TODAY())>22,1,0),22)
  • To post as a guest, your comment is unpublished.
    Mohamed · 4 years ago
    Why are my comments not published completely????
    • To post as a guest, your comment is unpublished.
      Admin_jay · 4 years ago
      [quote name="Mohamed"]Why are my comments not published completely????[/quote]
      Sorry, please try to send me the formula to jaychivo#extendoffice.com. Please replace @ with #.

      And i will help you post it. May be there are some characters which have been blocked. :-)
  • To post as a guest, your comment is unpublished.
    Mohamed · 4 years ago
    Hi Jaco,
    You may achieve this for someone who works Mondays (2), Wednesdays (4) and Fridays (6) as follows:

    (1) Call the year's start and end dates [quote]StartDate[/quote] and [quote]EndDate[/quote], respectively.
    (2) List all the public holidays in South Africa (this could span more than one year) in a range and call it [quote]PublicHolidays[/quote]
    (3) To calculate the total number of days worked enter the following [b]array[/b] formula:
    [quote]=INT((WEEKDAY(StartDate-2)-StartDate+EndDate )/7)+INT((WEEKDAY(StartDate-4)-StartDate+EndDate )/7)+INT((WEEKDAY(StartDate-6)-StartDate+EndDate )/7)-SUM(IF((PublicHolidays>=StartDate)*(PublicHolidays
    • To post as a guest, your comment is unpublished.
      Mohamed · 4 years ago
      Sorry the formula above is not complete: It should be:

      =INT((WEEKDAY(StartDate-[b]2[/b])-StartDate+EndDate)/7)+INT((WEEKDAY(StartDate-[b]4[/b])-StartDate+EndDate)/7)+INT((WEEKDAY(StartDate-[b]6[/b])-StartDate+EndDate)/7)-SUM(IF((PublicHolidays>=StartDate)*(PublicHolidays
    • To post as a guest, your comment is unpublished.
      Mohamed · 4 years ago
      I don't know what happened to my formula and the rest of my message above. The formula should be:

      =INT((WEEKDAY(StartDate-2)-StartDate+EndDate )/7)+INT((WEEKDAY(StartDate-4)-StartDate+EndDate)/7)+INT((WEEKDAY(StartDate-6)-StartDate+EndDate )/7)-SUM(IF((PublicHolidays>=StartDate)*(PublicHolidays
  • To post as a guest, your comment is unpublished.
    Jaco · 4 years ago
    Hi, I am from South Africa and I need advice.
    I have two workers at work who works different days. Now I want to type in a formula in excel to count how many days a year she work (that I can do), but the trick comes in when I want to type in a formula which allows me to deduct if one of her working days is a public holiday for example she works Monday, Wednesday and Friday. That means she works 156 days per year, but I want excel to deduct the holidays if it is on one of her working days. Can someone please assist me?
  • To post as a guest, your comment is unpublished.
    Laura Tigers · 5 years ago
    Does not work properly. You need to consider what day you're starting from and ending with!
  • To post as a guest, your comment is unpublished.
    PhilT · 5 years ago
    Thank you for this.
    Question, how do I add another day like "Wednesday or 4" to the Monday? Basically I want it to calculate both the total of Mondays and Wednesdays between the two dates. How do I write this formula?
    Thanks again
    • To post as a guest, your comment is unpublished.
      JamesB · 4 years ago
      To help future seekers.
      Use this formula for calculating days between two dates:
      =NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] )
      =NETWORKDAYS.INTL(A3,A4,"00000011",C3:C8) - 0=include day 1=exclude day
    • To post as a guest, your comment is unpublished.
      Mohamed · 5 years ago
      Try
      =INT((WEEKDAY($B$1-2)-$B$1+$B2)/7)+INT((WEEKDAY($B$1-4)-$B$1+$B2)/7)