原文標(biāo)題:《這么牛 X 的動態(tài)日歷,是怎么用 Excel 做出來的?》
大家好,我是在搗鼓日歷的小爽~
前面小蘭有介紹過利用數(shù)據(jù)透視表制作日歷~
那這種炫酷的日歷表,用函數(shù)該怎么做出來呢?
今天,我就和小伙伴們一起聊一聊日歷的函數(shù)做法
操作特別簡單,一起來看看吧~
▋先做一個樣板
? 插入一個數(shù)值調(diào)整器控件。
在【開發(fā)工具】選項卡下,單擊【插入】-【數(shù)值調(diào)節(jié)控件】:
PS. 如果沒有【開發(fā)工具】選項卡,在【文件】-【選項】-【高級】中調(diào)出即可。
? 點擊鼠標(biāo)右鍵,選擇【設(shè)置控件格式】。
指定「單元格鏈接」為 C2 單元格,其他參數(shù)如圖下所示:
此時月份跟著數(shù)值調(diào)節(jié)控件進行聯(lián)動。
1、編寫公式
制作完對應(yīng)的樣板,現(xiàn)在我們就來寫寫函數(shù)公式。
做法很簡單,如下圖:
往下,就是上一個單元格的值加 7;
往右,就是左邊單元格的值加 1。
也就是說,只需要確定第一個單元格的日期,就能確定其他單元格的日期。
那么我們怎么確定第一個單元格的日期呢?
只要確定每月的 1 號的上一個周一的日期是多少,就能確定第一個單元格的日期。
這其中就涉及到一個數(shù)學(xué)邏輯問題了。
比如說,2021 年 7 月 1 號是周四,那么如下圖:
7 月 1 號的日期-4+1,就是 7 月 1 號前面的第一個周一的日期。
即,每月的 1 號的上一個周一 = 每月 1 號的日期-每月 1 號的星期數(shù) + 1。
我們知道:DATE 函數(shù)能夠返回一個日期。
=DATE(年,月,日)
WEEKDAY 函數(shù)可以獲取日期的星期數(shù)。
WEEKDAY 函數(shù)的語法規(guī)則:
=WEEKDAY(serial_number[return_type])=WEEKDAY(日期2)
由于我們習(xí)慣把周一開始作為每周第一天,所以第 2 參數(shù)一般設(shè)置為 2。
前面說過,每月的 1 號的上一個周一 = 每月 1 號的日期-每月 1 號的星期數(shù) + 1。
對應(yīng)輸入公式為:
=DATE(2021,$C$2,1)-WEEKDAY(DATE(2021,$C$2,1),2)+1▲ 左右滑動查看
如動圖所示,分別輸入對應(yīng)的公式,右拉 / 下拉填充。
2、設(shè)置條件格式
設(shè)置完對應(yīng)的公式之后,我們還需要把不是當(dāng)月的日期進行隱藏,這里就需要使用到【條件格式】了。
? 選中 B5:H10 區(qū)域,在【開始】選項卡下,單擊【條件格式】-【新建規(guī)則】;
? 選擇【使用公式確定要設(shè)置格式的單元格】,輸入設(shè)置格式的公式:
=MONTH(B5)<>$C$2
? 單擊格式,格式中字體選擇白色。
這樣,我們就可以將不是當(dāng)月日期的字體變成白色,肉眼上就看不到了,從而實現(xiàn)隱藏的效果。
動圖操作如下:
PS. 這里條件格式公式的原理是:把顯示為 TRUE 的單元格的字體設(shè)置為白色。
? 最后,我們只需要將數(shù)字格式自定義設(shè)置為只保留日就行了。
① 選中 [B5:H10] 區(qū)域,按住快捷鍵【Ctrl+1】彈出單元格設(shè)置對話框;
② 自定義-類型設(shè)置為:d。
到這里,單元格的日期就只顯示日了。
3、延伸拓展
前面我們是將日期的中的月,聯(lián)動到單元格中,那我們也可以將年聯(lián)動到單元格中。
原先的第一個單元格公式為:
=DATE(2021$C$2,1)-WEEKDAY(DATE(2021$C$2,1)2)+1▲ 左右滑動查看
那將之前的年份 2021 改為單元格引用,就可以做出如下圖的效果:
=DATE($G$2$C$21)-WEEKDAY(DATE($G$2$C$21)2)+1▲ 左右滑動查看
那如果我們想要在日歷表中,是當(dāng)天的日期,就高亮顯示,這應(yīng)該怎么做?
要達到上面這種效果,我們只需要設(shè)置一個條件格式:
? 選擇 [B5:H10] 區(qū)域,在【開始】選項卡下,單擊【條件格式】,新建規(guī)則。
? 使用公式確定要設(shè)置格式的單元格,輸入如下公式:
=AND(YEAR(TODAY())=$G$2,MONTH(TODAY())=$C$2,DAY(B5)=DAY(TODAY()),MONTH(B5)=$C$2)▲ 左右滑動查看
公式對應(yīng)的判斷如下:
▲ 左右滑動查看
PS. 本文截圖時間是 8 月 2 號,所以下圖中對應(yīng)日期顯示綠色填充顏色。
當(dāng)然,有時候,我還會用加載項-mini calendar。
直接在應(yīng)用商店添加它就好啦。
如動圖所示:
它可以顯示對應(yīng)周的周數(shù)。
它也可以切換不同的顏色主題。
到這里,日歷表就介紹完啦~
4、總結(jié)一下
本文介紹了日歷表的函數(shù)做法,其中涉及的主要知識點有:
? date 函數(shù),weekday 函數(shù),條件格式。
? 利用數(shù)值調(diào)節(jié)控件聯(lián)動單元格數(shù)值。
? 制作這種日歷,我們只需要確定第一個單元格的日期,也就是每個月的 1 號之前的第一個周一的日期。
? 將月份和年份,聯(lián)動到單元格中,參數(shù)化,是個比較常見的編程思維。
本文來自微信公眾號:秋葉 Excel (ID:excel100),作者:小爽
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。