仅列出给定动态月份的工作日

时间:2016-05-25 14:41:54

标签: excel excel-formula

Haven在这里找不到任何有关此事的信息...... 我的文件由员工用于每月跟踪生产。工作表上的单元格包含该月份的第一个日期 - 即May 1, 2016

我需要构建一个表,列出上一页(May 1, 2016)中指示的月份工作日。我已经能够使用 = WORKDAYS 功能创建工作日列表并使用填充来完成该月的日期列表,但问题是它只是继续列出在下个月的日期。我只是使用:

=WORKDAY(C2,1)  May 30
=WORKDAY(D2,1)  May 31
=WORKDAY(E2,1)  June 1

等,填写日期。在我的示例中,我希望Excel返回""而不是继续下个月。

我假设我可以使用某种IF语句,但如果检查需要检查单元格,我无法弄清楚如何避免循环引用它在......

2 个答案:

答案 0 :(得分:2)

Sheet1单元格A1上是日期值May 1, 2016

Sheet2单元格A1上是标题,因此实际日期将从单元格A2开始。在单元格A2中,这个公式是获得当月的第一个工作日:

=IF(WEEKDAY(Sheet1!A1,2)<6,Sheet1!A1,WORKDAY(Sheet1!A1,1))

然后在单元格A3中复制下来是这个公式:

=IF(A2="","",IF(MONTH(WORKDAY(A2,1))<>MONTH(A2),"",WORKDAY(A2,1)))

您将获得如图所示的结果。请注意,我将其复制到单元格A31,它提供了正确的工作日日期并在月末停止:

tigeravatar example for mattinwpg

答案 1 :(得分:0)

这个公式怎么样:

=IFERROR(IF(TEXT(D2,"yymm")<>TEXT(E2,"yymm"),"", WORKDAY(E2,1)),"")

它检查单元格D2中的月份和年份是否等于单元格E2中的月份和年份。如果不是这种情况,则会为您提供一个空白单元格。

请告诉我这是否适合您。