close

4264

Excel如何顯示整年度各週的開始與結束日期

如果要在A1:A53儲存格內輸入當年各週起始日期與結束日期,111年1月1日起至112年1月7日、112年1月8日起至112年1月14日,依此類推有辦法嗎?

作法

點取A1儲存格,輸入:「=TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE(2023,1,1)-WEEKDAY(DATE(2023,1, 1))+1,DATE(2023,1,1))+(7*(ROW()-1)),"E年mm月dd日")&"~"&TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE (2023,1,1)+(7-WEEKDAY(DATE(2023,1,1))),DATE(2023,1,1)+6)+(7*(ROW()-1)),"E年mm月dd日")」後,向下複製到A2:A53儲存格。

公式說明

=TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE(2023,1,1)-WEEKDAY(DATE(2023,1,1))+1,DATE(2023,1, 1))+(7*(ROW()-1)),"E年mm月dd日")&"~"&TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE(2023,1,1)+(7-WEEKDAY(DATE(2023,1,1))),DATE(2023,1,1)+6)+(7*(ROW()-1)),"E年mm月dd日")

首先要知道當年1月1號為當週第幾天(WEEKDAY(DATE(2023,1,1))),1為星期天(一週開始),7為星期六(一週結束)。

如果不是當週第一天,則顯示開始日期為該日期減掉該日期為當週第幾天的值再加1(DATE(2023,1,1)-WEEKDAY(DATE(2023,1,1))+1),否則顯示該日期(DATE(2023,1, 1))。

由於有53列,故將7乘以列號減一的值,換算出每週開始日期((7*(ROW()-1))),並利用TEXT函數將其轉換成民國日期格式(TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE(2023,1,1)-WEEKDAY(DATE(2023,1,1))+1, DATE(2023,1,1))+(7*(ROW()-1)),"E年mm月dd日"))。

如果不是當週第一天,則顯示結束日期為該日期加上7減掉該日期為當週第幾天的值((7-WEEKDAY(DATE(2023,1,1)))),否則顯示該日期加6(DATE(2023,1, 1)+6)。

由於有53列,故將7乘以列號減一的值,換算出每週結束日期((7*(ROW()-1))),並利用TEXT函數將其轉換成民國日期格式(TEXT(IF(WEEKDAY(DATE(2023,1,1))>1,DATE(2023,1,1)+(7-WEEKDAY(DATE(2023,1, 1))),DATE(2023,1,1)+6)+(7*(ROW()-1)),"E年mm月dd日"))。

 


arrow
arrow
    文章標籤
    DATE WEEKDAY IF ROW
    全站熱搜

    錦子老師 發表在 痞客邦 留言(0) 人氣()