在本例中,將使用數(shù)組公式實現(xiàn)一個動態(tài)的日歷,根據(jù)本機的時間顯示當前一個月的日歷。
下面先說明這個日歷的實現(xiàn)步驟:
1.在A1單元格內(nèi)輸入公式“=TODAY()”,在A2單元格內(nèi)輸入“=A3”,將A2單元格復制到B2:G3單元格區(qū)域。
2.設(shè)置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”,構(gòu)成了這個日歷的框架。如果在一個6 行7列的單元格區(qū)域內(nèi)輸入這個輸入公式,可以得到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)”,通過調(diào)用A1單元格,來得到本月一日的日期。
④本月一日的日期和6行7列的二維數(shù)組相加,又可得到一個6行7列的二維數(shù)組。這個二維數(shù)組實現(xiàn)了日期的逐一顯示。但是這個按照曰期逐一顯示的二維數(shù)組是從2號開始的,而且2號顯示在了星期一的位置。
⑤“WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)”部分用來對日期的位置進行調(diào)整。以2007年1月為例(2007年1月1日為星期一),可以得到值“-1”。這樣就對按日期逐一顯示的6行7列二維數(shù)組做出了調(diào)整,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(C4YEAR(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ù)組公式顯示的日歷 實例講解