我正在制作一张表格,其中必须填写周日的日期,并确保例外列表中的日期不出现在我的最终列表中
目标:获取只在周日工作的日期列表
这是预览
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 个连续的周日假期