首頁 > 科技

辦公小技巧:用好Excel 特殊日期提醒更智慧

2021-06-24 16:35:24

在公司文化建設中,為了提升員工凝聚力,很多公司都會為員工提供諸如生日福利、入職週年紀念日等活動。不過這些活動需要在指定日子對特定的員工實施,現在我們可以藉助Excel快速新增這些特殊日期的提醒。下面以Excel 2016為例,提醒的時間是在某某入職週年日前兩天,在提醒單元格中自動新增提醒文字,並且單元格填充為黃色底色(圖1)。

圖1 提醒效果示例

可以看到示例的資料非常多,而實際提醒只要部分的資料即可,因此我們可以先為智慧提醒製作一個專門工作表,新表中的資料藉助VLOOKUP函數從原始表中ABCD列的資料提取。按提示新建一個「提醒表」,複製A1~D1表頭資料,接著定位到B2,輸入公式「=IF(LEN($A2)=0,"",VLOOKUP($A2,Sheet1!$A$1:$D$15,COLUMN(B2),0))」,然後將其向右填充到D列,向下填充到15行(圖2)。

小提示:這裡使用COLUMN函數返回值所在的列,通過VLOOKUP函數以A2單元格的值在原始工作表A1:D15區域中查詢,最後通過IF函數的巢狀(防止出現N/A提示)來進行判斷。

圖2 新建表

這樣我們只要在A2單元格中開始填充員工的工號資料,上述函數就會自動引用原來表格資料。以後在原始資料表中新增其他員工資訊後,我們只要在這裡繼續填充相應員工的工號即可自動呼叫資料(圖3)。當然這還是個查詢器,如果員工很多,只要在A列輸入工號即可快速找到該員工的資訊。

圖3 呼叫資料

因為是員工入職週年提醒,我們需要先計算員工的工齡,工齡藉助INT函數來計算,定位到E2單元格並輸入公式「=INT((TODAY()-D2)/365)」,向下填充後就可以自動顯示員工的工齡了(圖4)。

圖4 計算入職工齡

小提示:這裡先使用TODAY函數和員工入職日期相減得到實際入職天數,然後除以365天得到實際入職工齡。最後使用INT函數取整(它是舍尾法直接去除小數,比如9.1→9.9年工齡都取9),這樣就可以獲得員工從入職到今天的整數工作年限了。不過需要注意的是,因為有閏年(366天)的存在,如果要精確計算員工的年限就需要考慮這一因素,本文只是為了計算方便,統一以365天為基準。

示例要求是需要在員工入職週年日前兩天進行提醒,週年是按照員工入職月份為準,因此還要計算截至今天為止,員工入職月份和今天日期的時間差。這個時間差通過DAYS函數計算(入職月日-今日的月日),定位到F2單元格並輸入公式「=DAYS(TEXT(D2,"mm-dd"),TODAY())」,下拉即可(圖5)。

小提示:公式先使用TEXT函數提取D2單元格日期的月和日格式,並將其作為DAYS函數的結束日期。使用TODAY()(表示今日的月日)作為DAYS函數的開始日期,然後相減得到兩個日期相差天數。因為在示例中需要提前2天通知,所以相減天數為2則需要進行通知,假設今天是2019/11/14,那麼2016/11/16入職的張梅就應該得到提醒(11/16-11/14=2),負數表示比當前月份小,已經過了週年日的天數。

圖5 計算今日距入職週年日天數

最後是提醒語句的設定,語句可以藉助IF函數設定,定位到G2單元格並輸入公式「=IF(F2=2,C2&"的"&B2&"後天入職"&E2&"週年","")」然後下拉,這樣符合條件的員工在G列就會出現提醒語句(圖6)。

小提示:IF函數第一個條件判斷時間差是否距離入職時間2天,如果符合那麼就根據示例輸出提醒語句,語句的組合使用「&」字元將指定的字元顯示在G2單元格,否則顯示為空。

圖6 新增提醒語句

在示例中還需要為提醒語句填充底色,這裡藉助條件格式完成,選中G列資料,點選「開始→條件格式→突出顯示單元格規則→為包含以下文字的單元格設定格式」,在開啟的視窗中包含文字輸入「週年」,點選自定義格式,選擇填充黃色底色的設定(圖7)。

圖7 條件格式設定

完成上述設定後,以後我們只要每天開啟這個文件,如果有符合條件的員工,那麼在G列就會自動出現填充黃色底色的提醒語句,根據這個提示安排相應的活動即可。為了方便書寫,這裡還可以只保留G列提醒並在G2單元格直接使用IF巢狀E、F函數,只要將函數更改為「=IF(DAYS(TEXT(D15,"mm-dd"),TODAY())=2,C15&"的"&B15&"後天入職"&INT((TODAY()-D15)/365)&"週年","") 」即可(圖8)。

圖8 最終效果

因為TODAY日期是動態變化的,上述提醒藉助函數和條件格式可以實現動態計算日期。大家可以舉一反三,製作類似員工生日、公司週年慶、高考倒計時等智慧提醒。


IT145.com E-mail:sddin#qq.com