2012-06-01 1333 views
8

在Excel 2007中,我有一個年份和週數,並且想要計算月份數。計算excel中年份和週數的月份

問題是,在我的情況下,每週的開始是星期一,所以幾個星期將在幾年內重疊。

例子:

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

我建議以下辦法

  • 確定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))

+0

偉大的答案謝謝,花了一點工作,D4是一年的第1周時,計算月計算。對於我來說這個工作,我注意到它有像2012年那樣的閏年問題,第18周從4月30日開始,但上述公式在第4周時應該是第4周。幸運的是,我不必太精確與此,再次感謝。 – Pricey

+0

有趣的是,它似乎爲我工作。 2012年,第18周的C4評估爲52(1月1日是2011年第52周)。 D4爲2012年1月2日星期一,(D4 + 7 *(18-1))爲4月30日。也許我必須翻譯公式纔會犯錯誤。如果你讓我知道錯誤在哪裏,我會更新這篇文章。 –

+0

啊我知道我的問題是什麼。公式中的單元格B1提到了第1周的內容。對於該特定單元格,我沒有任何價值,我假設它是B4,因此我調整了它,現在它可以工作。 – Pricey

24

實際上,你可以做到這一點多一點簡單的星期一。如果Year在A2,例如2012年,和週數爲B2你可以得到一週的開始日期與此公式

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

格式日期

......顯然你可以用這一個月函數獲得一個月,即

=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))

+0

謝謝,這些東西讓我誤解了實際發生的事情,從一年的第一個月開始減去-2,然後減去當年一月第三天的星期幾......然後在一週內加上星期*天。你的答案看起來不錯,更清潔+1。謝謝 – Pricey

+3

謝謝 - 我添加了一個解釋...... –

+1

採取一些讓你的頭繞着邏輯,但乾淨和簡單的公式很好的答案 – MikeT

0

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