在提到日期計算時,幾乎所有的Excel圖書中都會提到一個隱藏函數(shù)——DATEDIF。
這個函數(shù)的確挺好用,但令人奇怪的是,這居然是個隱藏函數(shù),你甚至在Excel的幫助信息里也找不到它。
這個函數(shù)是用來計算兩個日期之間的間隔時間的,它的語法是:
DATEDIF(start_date,end_date,unit)
翻譯成普通話就是:
DATEDIF(開始日期,結(jié)束日期,返回參數(shù))
第三參數(shù)有Y、M、D、YM、YD、MD六種,返回的內(nèi)容大致如下圖所示。
特別注意,第二個參數(shù)的日期必須大于第一個參數(shù)的日期。也就是結(jié)束日期要大于開始日期的,否則的話,Excel就暈了。
舉個例子吧:
開始日期是2011年3月3日,結(jié)束日期是2014年5月15日,下面這張表顯示了各個參數(shù)的不同意義:
好了,根據(jù)這個函數(shù)的特性,我們就可以設(shè)置員工生日提醒了。
假如你們公司在員工生日當(dāng)天會送禮物啥的,你得提前去購買。因此你希望在員工信息表里能設(shè)置一個提醒,這時你就可以借助這個函數(shù)來處理。
所謂生日,必須包含月和日,而包含月和日的第三參數(shù)只有“yd”,因此,這里就是用這家伙。
但是可不可以用下面的公式來計算兩個日期之間的間隔呢?
=DATEDIF(出生日期,TODAY(),”yd”)
比如今天8月5日,員工出生日期是1980年8月13日,用上面這個公式返回結(jié)果是357天。
對于這種情況,可以做個小小的處理,假設(shè)我們希望提前10天提醒,就這么處理:“出生日期”-10。
公式為:
=DATEDIF(出生日期-10,TODAY(),”yd”)
該公式返回的結(jié)果是2,也就是說這兩個日期實際差了10-2=8天。
好了,現(xiàn)在可以來設(shè)置提醒了。
下面是模擬的員工檔案表,D4單元格的公式為:
=TEXT(10-DATEDIF(C4-10,TODAY(),”yd”),”還有0天生日;;今天生日”)
咱們以前學(xué)習(xí)過TEXT函數(shù)的用法,這里把DATEDIF函數(shù)的計算結(jié)果作為TEXT函數(shù)的參數(shù)。
“還有0天生日;;今天生日”的意思是:
DATEDIF函數(shù)的計算結(jié)果大于0的,顯示為“還有N天生日”;
小于0的不顯示;
等于0的顯示為“今天生日”。
由于DATEDIF函數(shù)第二參數(shù)在使用“YD”時有特殊的計算規(guī)則,因此當(dāng)結(jié)束日期是3月份時,計算結(jié)果可能會出現(xiàn)一天的誤差。
如需得到精確結(jié)果,可以使用以下數(shù)組公式完成,還記得嗎,數(shù)組公式要按<Shift+Ctrl+回車>輸入哦。
{=TEXT(IFERROR(MATCH(TEXT(C2,”mmdd”),TEXT(NOW()+ROW($1:$11)-1,”mmdd”),)-1,-1),”還有0天生日;;今天生日”)}
公式中的C2就是出生日期所在單元格。
公式的主要思路是先構(gòu)造從今天開始連續(xù)的10個日期所組成的一個數(shù)組,然后用MATCH函數(shù)在這個數(shù)組中查找B2單元格的生日日期是否存在。
公式有點小復(fù)雜,這里咱們就不再進(jìn)行詳細(xì)的解釋了,表親們只要會套用即可。
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。