在 Excel 中填充星期日日期列表并忽略例外列表中的星期日

在 Excel 中填充星期日日期列表并忽略例外列表中的星期日

我正在制作一张表格,其中必须填写周日的日期,并确保例外列表中的日期不出现在我的最终列表中

目标:获取只在周日工作的日期列表

这是预览

working days    .........                  Vacation days  
07/01/2012         ............               04/02/2012  
14/01/2012         ............               11/02/2012  
21/01/2012  
28/01/2012{{                  
18/02/2012  
25/02/2012  
03/03/2012  
10/03/2012  
17/03/2012  
24/03/2012  
31/03/2012    

到目前为止,我在 A 列中填充了以下内容:

A1 =2012  
A3 =DATE(A1;1;1)+7-WEEKDAY(DATE(A1;1;1))  
A4 =IF(YEAR(A3+7)=$A$1;A3+7;"")  

我该如何改进它,以便它可以在列出工作周日时忽略假期日期?

答案1

你列出的日期似乎是星期六但假设你想要周日如上所述Excel 2010您可以在 A3 中使用此公式

=WORKDAY.INTL(DATE(A$1;1;0);1;"1111110";C$2:C$10)

假设假期日期列在C2:C10

然后将 A4 中的此公式复制到 A55

=IF(A3="";"";IF(YEAR(WORKDAY.INTL(A3;1;"1111110";C$2:C$10))=A$1;WORKDAY.INTL(A3;1;"1111110";C$2:C$10);""))

在 Excel 2007 中,您可以分别对 A3 和 A4 使用这些公式进行复制:

=DATE(A1;1;1)-WEEKDAY(DATE(A1;1;7))+MIN(IF(COUNTIF(C$2:C$10;DATE(A1;1;1)-WEEKDAY(DATE(A1;1;7))+7*{1;2;3;4;5;6;7;8;9})=0;{1;2;3;4;5;6;7;8;9}))*7

=IFERROR(SMALL(IF(COUNTIF(C$2:C$10;A3+7*{1;2;3;4;5;6;7;8;9})=0;IF(YEAR(A3+7*{1;2;3;4;5;6;7;8;9})=A$1;A3+7*{1;2;3;4;5;6;7;8;9}));1);"")

后面的公式假设你不会有超过 8 个连续的周日假期

相关内容