這個萬年歷可以顯示當月的月歷,還可以隨意查閱任何日期所屬的月歷,非常方便。如果你愿意,還可以讓它在特殊的日子里顯示不同的提醒文字,一起來試試吧!
本文所涉及到的函數有:
1、AND (logical1,logical2, ...)
2、DATE (year,month,day)
3、DAY (serial_number)
4、IF (Logical,Value_if_true,Value_if_false)
5、INT (number)
6、MONTH (serial_number)
7、NOW ()
8、OR (logical1,logical2, ...)
1、啟動EXCEL2003,新建一個工作表,取名保存(如萬年歷.xls),并在相應的單元格中,輸入如圖1所示的文本。

2、同時選中B1、C1、D1單元格,按“格式”工具欄上的“合并及居中”按鈕,將其合并成一個單元格,并輸入公式:=TODAY()。
選中B1(合并后的)單元格,執行“格式→單元格”命令,打開“單元格格式”對話框(如圖2),在“數字”標簽中的“分類”下面選中“日期”選項,再在右側“類型”下面選中“二○○一年三月十四日”選項,“確定”退出,將日期設置成中文形式。

注意:TODAY()函數用于提取當前系統日期,請將系統日期一定要調整準確喲。
3、選中F1單元格,輸入公式:=IF(WEEKDAY(B1,2)=7,"日",WEEKDAY(B1,2));選中H1單元格,輸入公式:=NOW()。
選中F1單元格,打開“單元格格式”對話框,在“數字”標簽中的“分類”下面選中“特殊”選項,再在右側“類型”下面選中“中文小寫數字”選項,“確定”退出,將“星期數”設置成中文小寫形式;選中H1單元格,打開“單元格格式”對話框,在“數字”標簽中的“分類”下面選中“時間”選項,再在右側“類型”下面選中一款時間格式,“確定”退出。
注意:①上述前面一個公式的含義是:如果(IF)當前日期(B1)是星期“7”(WEEKDAY(B1,2)=7),則在F1單元格中顯示“日”,否則,直接顯示出星期的數值(WEEKDAY(B1,2))。
②上述第二個函數(NOW())用于提取當前系統日期和時間,也請將系統日期和時間調整準確。
4、在I1、I2單元格分別輸入1900、1901,然后同時選中I1、I2單元格,用“填充柄”向下拖拉至I151單元格,輸入1900—2050年份序列。
同樣的方法,在J1至J12單元格中輸入1—12月份序列。
5、選中D13單元格,執行“數據→有效性”命令,打開“數據有效性”對話框(如圖3),按“允許”右側的下拉按鈕,選中“序列”選項,在“來源”下面的方框輸入:=$I$1:$I$151,“確定”退出。
同樣的操作,將F15單元格數據有效性設置為“=$J$1:$J$12”序列。
注意:經過這樣的設置以后,當我們選中D15(或F15)單元格時,在單元格右側出現一個下拉按鈕,按此下拉按鈕,即可選擇年份(或月份)數值,快速輸入需要查詢的年、月值。
6、選中A2單元格(不一定非得是A2喲),輸入公式:=IF(F13=2,IF(OR(D13/400=INT(D13/400),AND(D13/4=INT(D13/4),D13/100<>INT(D13/100))),29,28),IF(OR(F13=4,F13=6,F13=9,F13=11),30,31)),用于獲取查詢“月份”所對應的天數(28、29、30、31)。
注意:上述函數的含義是:如果查詢“月份”為“2月”(F13=2)時,并且“年份”數能被400整除[D13/400=INT(D13/400)],或者(OR)“年份”能被4整除,但不能被100整除[AND(D13/4=INT(D13/4),D13/100<>INT(D13/100))],則該月為29天(也就是我們通常所說的“閏年”),否則為28天。如果“月份”不是2月,但是“4、6、9、11”月,則該月為30天。其他月份天數為31天。
7、選中B2單元格,輸入公式:=IF(WEEKDAY(DATE($D$13,$F$13,1),2)=B3,1,0)。再次選中B2單元格,用“填充柄”將上述公式復制到C2—H2單元格中。
注意:①上述B2公式的含義是:如果“查詢年月”的第1天是星期“7”(WEEKDAY(DATE)($D$13,$F$13,1),2)=B3)時,在該單元格顯示“1”,反之顯示“0”),為“查詢年月”獲取一個對照值,為下面制作月歷做準備。
②上述C2—H2單元條中公式的含義與B2相似。
③在用拖拉法復制公式時,公式“絕對引用”的單元格(加了“$”號的,如“$D$13”等)不會發生改變,而“相對引用”的單元格(沒有加“$”號的,如“B3”等),則會智能化地發生變化,例如在E2單元格中,“B3”變成了“
E3”,整個公式成為:=IF(WEEKDAY(DATE($D$13,$F$13,1),2)=E3,1,0)。
8、選中B6單元格,輸入公式:=IF(B2=1,1,0)。選中B7單元格,輸入公式:=H6+1。用“填充柄”將B7單元格中的公式復制到B8、B9單元格中。
分別選中B10、B11單元格,輸入公式:=IF(
H9>=A2,0,H9+1)和=IF(H10>=A2,0,IF(H10>0,H10+1,0))。
選中C6單元格,輸入公式:=IF(B6>0,B6+1,IF(C2=1,1,0))。用“填充柄”將C6單元格中的公式復制到D6—H6單元格中。
選中C7單元格,輸入公式:=B7+1。用“填充柄”將C7單元格中的公式復制到C8、C9單元格中。同時選中C7—C9單元格,用“填充柄”將其中的公式復制到D7—H9單元格中。
選中C10單元格,輸入公式:=IF(B11>=$A$2,0,IF(B11>0,B11+1,IF(C6=1,1,0)))。用“填充柄”將C10單元格中的公式復制到D10—H10單元格和C11單元格中。
至此,整個萬年歷(其實沒有萬年,只有從1900—2050的151年)制作完成。
下面,我們一起來將其裝飾一下。
9、選中相應的單元格,利用工具欄上的相應按鈕,設置好字體、字號、字符顏色等。
選中相應的單元格,打開“單元格格式”對話框,在“對齊”標簽下,設置好單元格中文本的對齊方式(通常情況下,垂直對齊可以一次性設置為“居中”,水平“對齊”根據具體情況設置)。
同時選中I列和J列,右擊鼠標,選“隱藏”選項,將相應的列隱藏起來,使得界面更加友好。用同樣的方法,將第2和第3行也隱藏起來。
10、選中B5—H11單元格區域,打開“單元格格式”對話框,進入“邊框”標簽,選擇好“顏色、樣式”,并“預置”好邊框范圍,然后“確定”退出,為月歷加上邊框。
11、執行“工具→選項”命令,打開“選項”對話框(如圖4),在“視圖”標簽下(通常是默認標簽),清除“零值”和“網格線”復選框中的“∨”號,“確定”退出,讓“零值”和“網格線”不顯示出來。

12、將B14—H14和B15—H15單元格分別合并成一個單元格,并在B14和B15單元格中輸入公式:=IF(AND(MONTH(D1)=1,DAY(D1)=1),"新的新氣象!加油呀!",IF(AND(MONTH(D1)=3,DAY(D1)=8),"向女同胞們致敬!",IF(AND(MONTH(D1)=5,DAY(D1)=1),"勞動最光榮",IF(AND(MONTH(D1)=5,DAY(D1)=4),"青年是祖國的棟梁",IF(AND(MONTH(D1)=6,DAY(D1)=1),"原天下所有的兒童永遠快樂",0)))))和=IF(AND(MONTH(D1)=7,DAY(D1)=1),"黨的恩情永不忘",IF(AND(MONTH(D1)=8,DAY(D1)=1),"提高警惕,保衛祖國!",IF(AND(MONTH(D1)=9,DAY(D1)=10),"老師,您辛苦了!",IF(AND(MONTH(D1)=10,DAY(D1)=1),"祝我們偉大的祖國繁榮富強",0))))。
設置好B14和B15單元格的字體、字號、字符顏色。
注意:上述公式的含義是:如果當前日期逢到相關的節日(如“元旦”等),則在B14或B15單元格顯示出相應的祝福語言(如“新的新氣象!加油呀!”,參見圖5)。
由于IF函數只能嵌套7層,而節日數量超過7個(我們這里給出了9個),因此,我們用兩個單元格來顯示。 13、執行“格式→工作表→背景”命令,打開“工作表背景”對話框(如圖6),選擇一張合適的圖片后,按“插入”按鈕,將其襯于工作表文字下面。
14、在按住“Ctrl”鍵的同時,單擊D13和F13單元格,同時選中兩個單元格,開“單元格格式”對話框,切換“保護”標簽(如圖7),清除“鎖定”前面復選框中的“∨”號,“確定”退出。
15、執行“工具→保護→保護工作表”命令,打開“保護工作表”對話框(如圖8),兩次輸入密碼后,確定退出。
注意:經過這樣的設置后,整個工作表中除了D13和F13單元格中的內容可以改變外,其它單元格中的內容均不能改變,保證了萬年歷的使用可靠性。
萬年歷模板下載