calculate the month from the year and week number in excel

前端 未结 3 816
野的像风
野的像风 2020-12-13 16:29

In Excel 2007 I have a Year number and Week number and I want to work out the Month number.

The catch is that in my case the start of every week is a monday, so some

相关标签:
3条回答
  • 2020-12-13 16:55

    The ISO Week always contain January 4th, so let's get its weekday starting with monday (obviously "year" is the cell with the year):

    WEEKDAY(DATE(year;1;4))
    

    This is the number of days we need to go back from that date to find a monday (plus one)

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

    So now we just need to count on...

    DATE(year;1;4)-WEEKDAY(DATE(year;1;4))+1+weeknumber*7
    
    0 讨论(0)
  • 2020-12-13 17:04

    You can actually do this a little more simply. If Year is in A2, e.g. 2012, and week number is in B2 you can get the start date of that week with this formula

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

    format as date

    ......clearly you can wrap that in a MONTH function to get the month, i.e.

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

    format result cell as general

    Explanation

    The above finds the date of the last Monday of the previous year and then adds the number of weeks * 7 to give the start date of the relevant week.

    The first day of the year for ISO weeks is always the only Monday in the period 29th Dec to 4th Jan, so to find that date we can find the Monday immediately before 5th Jan.

    To find the Monday immediately before any date you can use this generic formula

    =date-WEEKDAY(date-2)

    so if date is 5th Jan of the year shown in A2 that's the same as

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

    .....but that gives the first Monday of this year, so if I want the last Monday of the previous year I can subtract 7 - one way to do that is to subtract 7 from the 5 to get -2 hence:

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

    0 讨论(0)
  • 2020-12-13 17:10

    I suggest the following approach

    • Determine the (ISO) week of January 1st (see this page) [in cell C4]

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

    • Calculate the day on which week 1 starts [in cell D4]

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

    • Determine the Monday of the week in question and the corresponding month

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

    0 讨论(0)
提交回复
热议问题