在 Excel 中计算日历周

在 Excel 中计算日历周

如果引用带有日期的单元格,我将使用以下公式来计算日历周:

=INT((A1-DATE(YEAR(A1);1;1)-WEEKDAY(A1))/7)+2

但它不能正常工作。如果我输入,24.08.2012我会得到日历第 35 周,但实际上是第 34 周。

有人知道发生了什么问题吗?

答案1

此公式将为您提供 ISO 周数 [每年的第 1 周从 12 月 29 日或之后的第一个星期一开始,每周有 7 天]

=INT((A1-WEEKDAY(A1;2)-DATE(YEAR(A1+4-WEEKDAY(A1;2));1;4))/7)+2

正如 Andreas 所说,在 Excel 2010 中,您可以使用 WEEKNUM 函数获得相同的结果

=WEEKNUM(A1;21)

答案2

我假设上述公式仅适用于美国日期,因为第一个日历周总是从 1 月 1 日开始。在欧洲则有所不同(用 VB 术语来说:前四天)。

在 VBA 中可以这样做:

Format(datefield, "ww", vbMonday, vbFirstFourDays)

Excel 2010 带有用于日历周的内置函数。

答案3

对于 Excel 2007=WEEKNUM(A1,1)=WEEKNUM(A1)回报34,而=WEEKNUM(A1,2)回报35,当A1是 24.08.12(见隆·德·布鲁因)。

答案4

在选择日期和年份时,您的公式给我带来了分号错误。而必须使用逗号。另外,我不知道您是否对 A1 进行了特定的格式设置,但 2012 年 8 月 24 日在 Excel 2013 中默认不是有效日期。但是,在更改日期格式和逗号后,您的公式可以在新的 Excel 工作簿中使用。

=INT((A1-DATE(YEAR(A1),1,1)-WEEKDAY(A1))/7)+2

在此处输入图片描述

相关内容