计算一个月中的星期天数


8

在Microsoft Excel中,我希望确定任何给定月份中的星期日数。我将预算电子表格放在一起,当一个月中的五个星期日而不是四个星期日时,一些子帐户会获得额外的资金。

我要引用的唯一单元格是工作表的标题,该标题位于单元格A1中,等于当前月份。例如6/1/14

Answers:


12

A1在每月的开始日期尝试以下方法:

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))

您还可以将其用于一周中的任何一天,只需更改开始日期和结束日期,就可以更改"Sun"日期范围。A1EOMONTH(A1,0)


1
哇。这真的很有创意。让我明白 我们使用indirect和row函数创建整个月的日期值吗?然后,我们将它们转换为Sun,Mon等形式的文本。我们评估Sun的状况,并将结果更改为1或0,然后将结果求和。那是对的吗?
wbeard52 2014年

是的.. :)
Jay-ar 2014年

9

如果您提到的日期始终是该月的第一天,那么该日期也将起作用:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)

简单。与我上面的公式相比非常优雅。谢谢。
wbeard52

3

与先前的答案非常相似,但更加简洁...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))

3
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

编辑:这在Excel 2016中有效,不确定何时引入NETWORKDAYS.INTL。


什么是Networkdays.Intl,它不适用于所有excel
yass

啊,你说得对。我没有看到他指的是Excel2010。我有2016。与networkdays不同,Networkdays.intl允许您选择周末。在这种情况下,我告诉Excel只有周末是星期日,这就是11代表的意思。因此,它可以为您提供不计算周日的天数。
SRCP '17

NETWORKDAYS.INTLExcel 2010开始可用。您可以在其名称旁边看到数字2010。请参阅在Excel 2010中工作的屏幕截图
phuclv

1

我相信我已经找到了另一种方法来给这只猫剥皮(可以这么说)。

如果要避免输入日期,而要使用较大的表进行投影(例如18个月),则可以只告诉公式您的月份和年份,并对其进行相应的格式化。这与对标题单元格的绝对引用结合在一起,标题单元格包含有问题的星期几,并且您有一个更紧凑,更整洁的表(我认为)。

A3 = 1月,B3 = 2017,C2:I2 = 3个字符日缩写(即SUN)

在单元格C3中输入公式

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy"))&":"&EOMONTH(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy")),0))),"ddd")=C$2))

快乐狩猎


1

接受的答案略有变化,您不需要在每月的第一天A1

这可以通过替换A1为:

date(year(today()),month(today()),1)

假设您要当月的价格。

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.