| 
 在本例中,將使用數(shù)組公式實現(xiàn)一個動態(tài)的日歷,根據(jù)本機的時間顯示當前一個月的日歷。下面先說明這個日歷的實現(xiàn)步驟:
   1.在A1單元格內輸入公式“=TODAY()”,在A2單元格內輸入“=A3”,將A2單元格復制到B2:G3單元格區(qū)域。   2.設置A2:G2單元格的格式,使其分類為日期的星期,選中A3:G8單元格區(qū)域。輸入以下公式:DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7)
   3.按Ctrl+Shift+Enter組合鍵確認輸入。現(xiàn)逐步分析輸入的這個數(shù)組公式:
 ?、僖驗橐粋€月最多會跨越6個星期,所以需要一個6行7列(一星期7天)的單元格區(qū)域來顯示這個日歷。
 ?、谶@個公式的后部,即“{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7”,構成了這個日歷的框架。如果在一個6 行7列的單元格區(qū)域內輸入這個輸入公式,可以得到6行7列的二維數(shù)組
 {1,2,3,4,5,6,7;8,9,10,11,12,13,14;15,16,17,18,19,20,21;
 22,23,24,25,26,27,28;29,30,31,32,33,34,35;36,37,38,39,40,41,42}這個數(shù)姐的元素按照從第一行由左到右,再由下一行由左到右順序,逐個加一遞增。這個數(shù)組公式以此來實現(xiàn)每日的遞增。
 ?、圻@個公式的前部,即“DATE(YEAR(A1),MONTH(A1),1)”,通過調用A1單元格,來得到本月一日的日期。
 ?、鼙驹乱蝗盏娜掌诤?行7列的二維數(shù)組相加,又可得到一個6行7列的二維數(shù)組。這個二維數(shù)組實現(xiàn)了日期的逐一顯示。但是這個按照曰期逐一顯示的二維數(shù)組是從2號開始的,而且2號顯示在了星期一的位置。
 ⑤“WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)”部分用來對日期的位置進行調整。以2007年1月為例(2007年1月1日為星期一),可以得到值“-1”。這樣就對按日期逐一顯示的6行7列二維數(shù)組做出了調整,2007年1月1日出現(xiàn)在二維數(shù)組第一行的第一個位置,而之后的日期逐一顯示。
 通過IF函數(shù),可以使日歷中的非當月日期不顯示。
   4.選中A3:G8單元格區(qū)域,把公式修改為:=IF(MONTH(DATE(YEAR(A1),MONTH(A1),1))<>
 MONTH(DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7),"",DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7) 
  最后按Ctrl+Shift+Enter組合鍵確認輸入。     這樣就以數(shù)組公式的方式顯示出日歷。通過修改各單元格的格式,可以使顯示更加美觀。  
Excel使用數(shù)組公式顯示的日歷 實例講解 |