心理

當前位置 /首頁/完美生活/心理/列表

如何用Excel製作日曆

如何用Excel製作日曆

用Excel製作日期是一個比較有挑戰的問題,這個問題涉及到Excel中多個函數的應用。下面我就分享一下我製作的日曆,希望有興趣的小夥伴們跟我交流。

首先介紹一下在製作這個日曆的過程中,我都使用了哪些Excel工具:

數據驗證:在這裏用於製作下拉選擇列表

文本日期轉換數值日期的函數:DATEVALUE

星期函數(weekday)

文本函數:TEXT、LEFT、RIGHT、MID、LEN

條件判斷函數:IF,IFERROR

設置單元格格式--日期格式

設置條件格式

廢話補多少,進入正題。

製作日曆模板和年月列表

第一步:畫一個如下圖所示的模板,大家可以根據自己的喜好設置格式。

第二步:設置模板中的星期

在顯示“星期”的行輸入序列數字“2,3,4,5,6,7,1”。

選中該區域,調出“設置單元格格式”對話框--選擇“日期”--選擇“類型”為“週三”得到如下效果。

第三步:製作“年”和“月”的下拉列表

如下圖所示,我在L列和M列分別將“年”和“月”列出。

按下圖所示,選中顯示年份的單元格--點擊“數據”選項卡下的“數據驗證”--選擇“允許”為“序列”,來源為剛剛輸入的年份列表區域--點擊確定。

用同樣的方法設置月份的下拉列表。

最後將年份和月份的列表區隱藏起來。

根據選擇的“年”、“月”確定當月“1日”是星期幾和最後一天是幾號

如下圖所示,在輔助區域分別輸入公式

公式1:=DATEVALUE(LEFT($C$1,4)&"/"&MID($D$1,1,LEN($D$1)-1))

公式2:=WEEKDAY($J$4)

公式3:=TEXT(EOMONTH($J$4,0),"d")*1

公式解析

公式1:

DATEVALUE函數用於將文本格式的日期轉換成數值格式的日期。

LEFT函數:在這裏用於從C1單元格的值“2019年”中截取“2019”。

MID函數:在這裏用於從D1單元格的值“6月”中截取“6”。

把LEFT函數和MID函數截取的值用“&”連接符連接起來並在中間插入“/”符號,並用DATEVALUE函數轉換成數字類型的日期後就得到了如:201961這樣的日期。

在Excel中如果你只輸入了年和月,並將該單元格的格式設置為日期格式,那麼該單元格會自動將該日期指向該月的1號。

公式2:

WEEKDAY($J$4):用於根據J4單元格的日期是星期幾。

公式1和公式2可以嵌套在一起使用。

公式3:

EMOHTH函數:在這裏用於根據J4單元格的值確定該月的最後一天是幾號。

TEXT函數:在這裏用於從EMONTH函數獲取的值中提取最後的日期。

*1:在這裏將TEXT函數的值轉換為數值類型。

開始日曆的製作

經過前面的準備工作後,我麼現在可以開始日曆的製作了。

第一步:確定當月一號在日曆模板中的位置。

這一步最麻煩,雖然我們已經知道了“1號”是星期幾,但我們現在需要在日曆模板中的正確的位置將其顯示出來,這就需要進行判斷。

在“週一”對應的A3單元格輸入公式:=IF(A2=$J$5,1,"")。這個公式是用於判斷“週一”所在的單元格的值與J5單元格的值是不是相等,如果相等則返回“1”(説明1號時星期一),不相等則返回空值。

在“週二”對應的單元格B3輸入公式:=IFERROR(IF(A3<>"",A3+1,IF(B2=$J$5,1,"")),"")。這個公式首先判斷A3單元格是不是1,如果是1則返回A3的值“+1”如果A3單元格的值不是“1”,則返回公式:IF(B2=$J$5,1,"")(這個公式的判斷方式與A3單元格的公式一樣)的返回值。

IFERROR函數的作用是當IF函數的返回值是錯誤值時,保證返回的是空值。

設置好單元格的引用方式,然後將B3單元格的公式向後拖動的G3(週日)單元格。

第二步:利用公式生成後續日期

如下圖所示,在A4單元格里輸入公式:=G3+1,在B4單元格里輸入公式:A4+1,這兩個公式應該很好理解,及不做解釋了。

將A4單元格的公式向下拖動,將B4單元格的公式向右拖動然後再向下拖動填充。

第三步:把錯誤的日期清理掉

如上圖所示,6月份只有30天,而上圖中卻顯示到了“37”,所以需要將多出來的部分給清理掉。

我們將後面兩行的公式進行修改:

在A7單元格輸入公式:=IFERROR(IF((G6+1)>$J$6,"",(G6+1)),""),向下拖動填充。

這個公式用於判斷"G6+1"的值是否大於“J6”單元格的值(當月的最後一天),如果大於"J6"的值則返回空值,如果不大於則返回“G6+1”。

在B7單元格輸入公式:=IFERROR(IF((A7+1)>$J$6,"",(A7+1)),""),向右向下拖動填充。這個公式的判斷原理跟上一個公式一樣。

設置完成後,就不會再顯示大於當月最後一天的日期了。

將當天的日期突出顯示

如下圖所示,選中模板中的數值區域,點擊“開始”選項卡下的“條件格式”按鈕,在彈出的下拉菜單中選擇“新建規則”。

在彈出的“新建規則”對話框中選擇“使用公式確定要設置格式的單元格”。

在下面的輸入區輸入公式:=DATEVALUE(LEFT($C$1,4)&"/"&MID($D$1,1,LEN($D$1)-1)&"/"&A3)=TODAY(),這個公式用於判斷模板中的日期與TODAY函數的值是否相等。

點擊格式,根據需要設置格式的樣式,後點擊確定。

好啦,我的日曆表基本製作步驟就是這樣,小夥伴們可以根據自己的喜好對錶格的樣式進行設置,最好對錶格中的進行保護設置,以免別人不小心把你辛苦設置的公式給弄沒了。

我是Exce大白,歡迎大家跟我交流Excel的使用技巧和心得。

TAG標籤:日曆 excel #