如何使用Excel编写一个月内的工作日?

时间:2019-09-30 05:26:56

标签: excel excel-formula

目前,我遇到了一些麻烦。我正在尝试创建一个模板,该模板将自动写出选定月份中的所有工作天(月份和年份将在单元格A1和B1中) 有人可以给我个建议吗?我尝试使用一些功能,但我必须声明我不知道如何实现此功能

1 个答案:

答案 0 :(得分:0)

为此,我将使用WORKDAY函数以及一个索引列,以便我们可以使用该月的所有时间:

=IF(MONTH(WORKDAY(DATE($C$1,MONTH(DATEVALUE($B$1&" 1")),0),$A2,$F$2:$F$4))<>MONTH(DATEVALUE($B$1&" 1")),
    "",
    WORKDAY(DATE($C$1,MONTH(DATEVALUE($B$1&" 1")),0),$A2,$F$2:$F$4)
)

这看起来很复杂,但是当您将其分成多个块时,这相当简单。这是一张可能有帮助的图像:

enter image description here

让我们从公式的这一部分开始:

MONTH(DATEVALUE($B$1&" 1"))

所有这些操作就是将月份的名称转换为月份的数字。

WORKDAY(DATE($C$1,MONTH(DATEVALUE($B$1&" 1")),0),$A2,$F$2:$F$4)

这是公式中执行大部分工作的部分。它根据提供的月/年创建日期,并根据当前行(索引列)并考虑银行假日列表,添加适当的工作日数。

IF(MONTH(WORKDAY(DATE($C$1,MONTH(DATEVALUE($B$1&" 1")),0),$A2,$F$2:$F$4))<>MONTH(DATEVALUE($B$1&" 1")),
    "",

这部分看起来很复杂,但实际上只是上述公式的一个副本,并将其与提供的月份进行比较。如果不同(表示我们已通过感兴趣的月末),则会导致返回空白而不是日期。