網友問到:如何計算某個日期為當年第幾週?如果不使用 WEEKNUM 函數,如何做到相同結果?(參考下圖)
(1) 使用 WEEKNUM 函數
在 Excel 2010 中,有一個 WEEKNUM 函數,可以根據某個日期傳回該日期為本年度的第幾週。
儲存格B2:=WEEKNUM(A2,1)
複製儲存格B2,往下各列貼上。
其中參數 1,表示以星期日為一週的開始。
(2) 不使用 WEEKNUM 函數
儲存格B2:=INT((A2-DATE(YEAR(A2),1,1))/7)+1
DATE(YEAR(A2),1,1):找出當年的1月1日。
A2-DATE(YEAR(A2),1,1):計算某個日期距離 1 月 1 日的天數。
透過 INT 函數計算除以 7 的商,再加上 1,即為答案。
【延伸閱讀】
文章標籤
全站熱搜

weeknum的算法沒有那麼簡單!這牽涉到每周是以星期天還是星期一開始的問題。另外,weeknum的結果常常會和這個公式差一,原因很簡單,年頭的那幾天也會算一周,最近這幾天也是一周,中間的才可以用7去除。
謝謝你。
討論週次問題, 就不得不考慮這個週次是怎麼做計算的, 大多數人會很直覺的將「今年已過天數」/7, 並無條件進位做計算。 但如果你有仔細觀查過就會知道, 一般來說公司行號的第一周通常都不是滿的, 因為每年的第一天不一定就是第一周的第一天, 所以我們應該將「今年已過天數」補足這些天數再進行計算才會正確! 首先第一個任務就是要先找出「今年第一周要多補幾天才會滿一周」, 面對這個問題就要搬出WEEKDAY這個函數, 只要填進時間並挑選輸出格式, 就可以間接知道需要補幾天了! 今年第一天我們這樣做計算, DATEVALUE(YEAR(NOW())&"/1/1") 然後再配合WEEKDAY公式就變成這樣, WEEKDAY(DATEVALUE(YEAR(NOW())&"/1/1"),2) 注意,我們這邊輸出模式選擇「2」, 因為如果是禮拜一他就會輸出1, 也間接地代表我們第一周需要補一天, 接下來我們要計算「今年已過天數」, 使用DAYS這個函數來幾算從今年開始到現在總共做幾天, 而剛有提過今年開始需要再多扣幾天來滿足一周的日期, 所以起始日變成DATEVALUE(YEAR(NOW())&"/1/1")-WEEKDAY(DATEVALUE(YEAR(NOW())&"/1/1"),2) 而計算周次整個函數就變成INT((DATEVALUE(YEAR(NOW())&"/1/1")-WEEKDAY(DATEVALUE(YEAR(NOW())&"/1/1"),2))/7)+1
謝謝你。
第二個算法 要考慮到 1/1是星期幾 如果他是第一週的最後一天..那 1/2就變成第二周 如果他是第一週的第一天..那 1/2就還是第一周
請問如何表達涵蓋年份的周數呢?想要表達為201915這樣的周數
=YEAR(A1)&WEEKNUM(A1,1)
(TODAY()-DATE(YEAR(TODAY()),1,1)-WEEKDAY(TODAY())+WEEKDAY(DATE(YEAR(TODAY()),1,1)))/7+1