2008年11月18日 星期二

[EXCEL] 製作月曆

 
  瞭解了和日期以及星期相關的公式之後 ([EXCEL] 日期,星期,週數),我們可以試著來做一件事:自動產生月曆表。


  如上圖,如果以星期日為每週的第一天,只要給定年份和月份,就可以利用下列公式自動產生該月份的月曆表。

##CONTINUE##
  =DAY($A$1-(WEEKDAY($A$1,1)-1)+COLUMN(A1)-1+(ROW(A1)-1)*7)

  首先,在月曆表最左上方的第一個位置,輸入上面公式。$A$1 必須是該月份的第一天,例如,2008 年 11 月 1 日。

  整個公式的重點在於,求出第一個位置的正確日期。我們先利用 WEEKDAY($A$1,1) 找出該月份第一天的星期數,再從該月份第一天倒算回去即可。例如 2008/11/1 是星期六,WEEKDAY($A$1,1) 會傳回 7,則左上方第一個位置的日期就是 2008/11/1 倒推 (7-1)=6 天,也就是 2008/10/26。

  找出左上方的日期後,剩下的就簡單了:每往右一格就加一天,公式是 +COLUMN(A1)-1;每往下一列就加 7 天,公式是 +(ROW(A1)-1)*7;因為左上方的日期不必加,但是又必須從 A1 起算 ROW() 和 COLUMN(),所以要 -1 做補償。

  好了,接下來,只要把這個公式直接複製到整個該月份的月曆表就完成了。

1 意見:

whitefox 2009/6/16 上午9:20 提到...

謝謝分享。