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

or

如何检查一个日期是否为公共假日,并在Excel中计算除假日之外的日子?

例如,你有一个日期列表,并希望检查列表中是否有公共假期,你怎么能很快完成它? 在这篇文章中,我会告诉你如何计算给定年份内美国公众假期的所有日期,然后检查日期是否是Excel中的美国公众假期。

部分1:在Excel中计算给定年份内的公共假期

Part 2:检查日期是否为Excel中的公共假期

3部分:除Excel和周末和节假日之外的两天之间的计数天数

精确地/静态地复制公式,而无需更改Excel中的单元格引用

Kutools for Excel 精确复制 实用程序可以帮助您轻松地复制多个公式,而无需更改Excel中的单元格引用,防止相对单元格引用自动更新 全功能免费试用60天!

广告精确的复制公式3

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

箭头蓝色右泡Part 1:在Excel中计算给定年份的公共假期

在检查日期是否为公共假期前,您必须在Excel中列出给定年份内的所有假期。 因此,准备一个如下所示的屏幕截图的表格将使您的工作更轻松。

doc检查公共假期1

有三种美国公众假期:

(1)第一种是固定日期的公众假期,如1月1st的元旦。 我们可以很容易地用公式计算元旦 = DATE(给定年份,1,1);

(2)第二种是固定工作日的公共假期,如总统日。 我们可以很容易地用公式计算总统日 = DATE(给定年份,1,1)+ 14 +选择(WEEKDAY(日期(给定年份,1,1)),1,0,6,5,4,3,2);

(3)最后一种是阵亡将士纪念日,我们可以很容易地用公式计算阵亡将士纪念日 = DATE(给定年,6,1)-WEEKDAY(日期(给定年,6,6)).

在这里我列出公式来计算下表中的所有公共假期。 只需将公式输入到适当的单元格中并按下即可 输入 关键一个一个。

假日生活 细胞 公式
元旦 C2 = DATE(C1,1,1)
马丁·路德·金小日 C3 = DATE(C1,1,1)+ 14 + CHOOSE(WEEKDAY(DATE(C1,1,1)),1,0,6,5,4,3,2)
总统日 C4 = DATE(C1,2,1)+ 14 + CHOOSE(WEEKDAY(DATE(C1,2,1)),1,0,6,5,4,3,2)
纪念日 C5 = DATE(C1,6,1)-WEEKDAY(DATE(C1,6,6))
独立日 C6 = DATE(C1,7,4)
劳动节 C7 = DATE(C1,9,1)+ CHOOSE(WEEKDAY(DATE(C1,9,1)),1,0,6,5,4,3,2)
哥伦布日 C8 = DATE(C1,10,1)+ 7 + CHOOSE(WEEKDAY(DATE(C1,10,1)),1,0,6,5,4,3,2)
退伍军人节 C9 = DATE(C1,11,11)
感恩节 C10 = DATE(C1,11,1)+ 21 + CHOOSE(WEEKDAY(DATE(C1,11,1)),4,3,2,1,0,6,5)
圣诞节 C11 = DATE(C1,12,25)

请注意: 在上表中的公式中,C1是定位给定年份的参考单元格。 在我们的例子中,这意味着年份2015,您可以根据您的需要更改它。

通过这些公式,您可以轻松计算给定年份的公共假期的日期。 请参阅下面的截图:

doc检查公共假期2


将范围保存为自动图文集词条(剩余单元格格式和公式)以供将来重复使用

引用单元格并应用计算每个节假日的公式非常繁琐。 Kutools for Excel提供了一个可爱的解决方法 自动文本 实用程序将范围保存为自动图文集词条,这可以保留范围内的单元格格式和公式。 然后你只需点击一下就可以重复使用这个范围。 只需点击一下即可插入此表并在此表中更改年份,工作变得简单! 全功能免费试用60天!

广告自动美国节日1

箭头蓝色右泡Part 2:检查日期是否为Excel中的公共假期

在列出特定年份公众假期的所有日期后,我们可以使用Excel轻松检查日期是否为公共假日。 假设你有一个日期列表,如下所示的屏幕截图,我将介绍如何轻松完成它。

选择一个空白单元格,除了日期列表,单元格B18,输入公式 = IF(COUNTIF($ C $ 2:$ d $ 11,A18), “假日”, “否”) 进入它,然后将填充手柄拖到您需要的范围内。 见上面的截图:

笔记:

(1)在公式= IF(COUNTIF($ C $ 2:$ D $ 11,A18),“假日”,“否”)中,$ C $ 2:$ D $ 11是公共假期的范围,特定年份,A18是您希望检查是否是公共假期的单元格,您可以根据自己的需要更改它们。 如果特定日期是公共假期,则此公式将返回“假日”,如果不是,则返回“否”。

(2)你也可以应用这个数组公式 = IF(OR($ C $ 2:$ d $ 11 = A18), “假日”, “否”) 检查相应的日期是否是假期。


箭头蓝色右泡 3部分:除Excel和周末和节假日之外的两天之间的计数天数

在1部分中,我们列出了给定年份中的所有假期,现在此方法将指导您计算除日期范围内所有周末和假期以外的天数。

选择一个空白单元格,您将返回天数,然后输入公式 = NETWORKDAYS(E1,E2,B2:B10) 进入它,并按下 输入 键。

注意:在上面的单元格中,E1是指定日期范围的开始日期,E2是结束日期,而B2:B10是我们在部分1中计算的假日列表。

doc检查公共假期6

现在,您将获得指定日期范围内除周末和节假日外的天数。


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.
    KC · 1 years ago
    How to make it show the actual name of the holiday instead of just "holiday"?
    • To post as a guest, your comment is unpublished.
      kellytte · 8 months ago
      Hi KC,
      You can change the text “holiday” to INDEX($A$1:$A$11,MATCH(A18,$C$1:$C$11,0)) in the formula, and the whole formula will be changed to
      =IF(COUNTIF($C$2:$C$11,A18),INDEX($A$1:$A$11,MATCH(A18,$C$1:$C$11,0)),"No")

      Please note that the dates you will check should be placed in one column.
  • To post as a guest, your comment is unpublished.
    Shawn Bull · 2 years ago
    Thanks, I have worked out a system to determine whether a public holiday is a weekday, but this also gives an alternative.
    The problem is that if one does it per month, then there are gaps between days where public holidays occur during weekdays.
    An example as below taking part of December 2017. the figures to immediate right of dates (Col B) are the WEEKDAY values. If date falls on a Saturday or Sunday (value 6 or 7) then the C Column reflects a blank cell ("") if a weekday the Cell has a "1", if a Public Holiday during a weekday then a "0"
    21/12/2017 4 1
    22/12/2017 5 1
    23/12/2017 6
    24/12/2017 7
    25/12/2017 1 0
    26/12/2017 2 0
    27/12/2017 3 1
    28/12/2017 4 1
    29/12/2017 5 1
    30/12/2017 6
    31/12/2017 7

    I can then sort manually using the Filter approach to get the 1's in one continuous column of rows without the blanks or 0's. Copy and paste to a worksheet where I can import the data into the temperature charts. I am trying to get the filter section automated either via formula by deleting all the 0's and blank cells with the resultant shifting up of cells containing the 1's, or via VBA. The ultimate prize would be combining the steps in Column A and Column C into one formula.
    The end game is to populate a temperature chart with the workday name and in the next corresponding row the day of the required month

    Mon Tue Thu Fri
    7 8 10 11
    Using August as an example where the 9th is a public holiday that falls during a work day, resulting in the data relating to the Wed being removed and the rest of the column shifting up one (or more) places. Then transposed into the above cells.

    I hope I am explaining with sufficient clarity :-)
  • To post as a guest, your comment is unpublished.
    Mark · 2 years ago
    How could I make this work for Federal Holiday? Meaning if the date of a holiday happens to fall on a weekend then the Federal holiday would either be Friday or Monday.
    • To post as a guest, your comment is unpublished.
      Tboo Ted Marshall · 2 years ago
      I used the formulas above to calculate the actual day of the holiday and made a second column for Observed holiday. I made this formula to accomplish this: =IF((WEEKDAY(B15))=1,B15+1,IF((WEEKDAY(B15))=7,B15-1,B15)). The cell reference B15 is referring to the holiday which is in the actual holiday column, in this case New Years Day. When the actual holiday falls on a Saturday, the Observed holiday will be listed as Friday and for actual holidays falling on Sunday, the observed holiday will be listed as Monday. Hope this helps.
      • To post as a guest, your comment is unpublished.
        Josh · 10 months ago
        This is an accurate function which will work for New Years Day that would fall on a weekend (years 2022 and 2023): =WORKDAY(DATE(CalendarYear,1,1),--(WEEKDAY(DATE(CalendarYear,1,1),2)>5))
  • To post as a guest, your comment is unpublished.
    LINDA · 3 years ago
    trying to make a formula for subtracting CALENDAR DAYS and holidays. I have been able to figure out for WORKDAYS and HOLIDAY, but I cannot figure out how to do CALENDAR days and holidays.

    here is what I am currently using for WORKDAYS AND HOLIDAYS. Help! So I need this to be CALENDAR days instead of WORKDAYS.]

    =WORKDAY(B28-5,1,HOLIDAYS)