在Excel 2007中,我有一个年份编号和周编号,我想编制月份编号。
问题在于,在我的情况下,每周的开始是星期一,所以有些星期将会重叠多年。
示例:
Year: 2012
Week 1 started: Monday 2nd January
Sunday 1st January was in week 52 of 2011
所以给出以下内容:
Year: 2011
Week: 10
我如何计算出第3周开始的第10周,因此第10周是第3个月。
感谢您提供任何帮助。
答案 0 :(得分:24)
你可以更简单地做到这一点。如果年份在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))
答案 1 :(得分:4)
我建议采用以下方法
确定1月1日的(ISO)周(参见this page)[在单元格 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))
答案 2 :(得分:0)
ISO周总是包含1月4日,所以让我们从星期一开始它的工作日(显然&#34;年&#34;是年份的单元格):
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