11

在 Excel 2007 中,我有一个年数和周数,我想计算出月数。

问题是,在我的情况下,每周的开始是星期一,所以几年中有些星期会重叠。

例子:

Year: 2012
Week 1 started: Monday 2nd January
Sunday 1st January was in week 52 of 2011

所以给出以下内容:

Year: 2011
Week: 10

我如何计算出第 10 周从 3 月 7 日开始,因此第 10 周在第 3 个月。

感谢您对此的任何帮助。

4

3 回答 3

26

您实际上可以更简单地执行此操作。如果年份在A2,例如 2012,并且周数在,B2您可以使用此公式获取该周的开始日期

=DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))+B2*7

格式为日期

......显然,您可以将其包装在 MONTH 函数中以获取月份,即

=MONTH(DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))+B2*7)

将结果单元格格式化为一般格式

解释

上面找到上一年最后一个星期一的日期,然后加上周数 * 7 给出相关周的开始日期。

ISO 周一年中的第一天始终是 12 月 29 日至 1 月 4 日期间唯一的星期一,因此要找到该日期,我们可以找到 1 月 5 日之前的星期一。

要查找任何日期之前的星期一,您可以使用此通用公式

=date-WEEKDAY(date-2)

因此,如果日期是 A2 中显示的当年 1 月 5 日,则与

=DATE(A2,1,5)-WEEKDAY(DATE(A2,1,3))

.....但这给出了今年的第一个星期一,所以如果我想要前一年的最后一个星期一,我可以减去 7 - 一种方法是从 5 中减去 7 得到 -2 因此:

=DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))

于 2012-06-01T18:57:17.887 回答
4

我建议以下方法

  • 确定 1 月 1 日的 (ISO) 周(参见此页)[在单元格C4中]

    =INT((B4-DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3)+WEEKDAY(DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3))+5)/7)(假设 B4 =DATE([Year],1,1)

  • 计算第 1 周开始的日期 [在单元格D4中]

    =IF(C4=1,B4-WEEKDAY(B4,3),B4+7-WEEKDAY(B4,3))

  • 确定相关周的星期一和相应的月​​份

    =MONTH(D4+7*([Week]-1))

于 2012-06-01T09:45:55.923 回答
1

ISO 周总是包含 1 月 4 日,所以让我们从星期一开始获取它的工作日(显然“年”是带有年份的单元格):

WEEKDAY(DATE(year;1;4))

这是我们需要从该日期返回以找到星期一的天数(加一)

DATE(year;1;4)-WEEKDAY(DATE(year;1;4))+1

所以现在我们只需要依靠...

DATE(year;1;4)-WEEKDAY(DATE(year;1;4))+1+weeknumber*7
于 2015-08-14T10:58:59.847 回答