跟李銳學Excel, 高效工作,快樂生活。
史上最全
DATEDIF函數
應用教程及案例解析
工作中經常會遇到涉及日期計算的問題,比如計算兩個日期之間的天數、月數、年數。
處理這類問題要使用到的一個高頻函數就是DATEDIF。
由於這是Excel中的一個隱藏函數,Excel的函數列表裡是找不到她的,連幫助文件中也沒有相關說明。
為了讓大家認識DATEDIF函數那些不為人知的強大功能,本文貼合辦公實際場景,整理了多種DATEDIF函數的應用方法。
除了原理和基礎性講解外,還提供了使用場景介紹,幫助讀者加深理解,便於在自己的實際工作中直接借鑑和使用。
由於正文字數限制,本教程給出Excel案例和公式解法,對公式的原理解析和詳細說明請點擊本文底部的「閱讀原文」獲取。
適用對象:本文面向的讀者包括所有需要用到查找引用數據的用戶,無論是初入職場的應屆畢生生,還是在職場拼殺多年的白領精英,都將從本文找到值得學習的內容。
軟體版本:本文的寫作環境是Window10家庭版作業系統上的簡體中文版Excel 2013。
本文絕大多數內容也適用於Excel的早期版本(2010、2007和2003),或者英文版和繁體中文版,所以讀者大不必因自用版本不同而過多擔心。
本文學習要點(強烈推薦收藏本教程)
1、DATEDIF函數語法解析及基礎用法
2、DATEDIF函數根據身份證號計算年齡
3、DATEDIF函數根據入職日期計算工齡(精確到幾年幾月幾天)
4、DATEDIF函數根據入職日期計算工齡工資
5、DATEDIF函數實現生日提醒
6、DATEDIF函數自定義規則計算服役年數
01 DATEDIF函數語法解析及基礎用法
DATEDIF函數是一個Excel中的隱藏函數,雖然在Excel中的函數列表中找不到這個函數,甚至幫助文件中也沒有相關說明,但是DATEDIF函數是一個功能十分強大的日期函數,在工作中的應用非常廣泛,用於計算兩個日期之間的天數、月數或年數。
其基本語法為:
DATEDIF(start_date,end_date,unit)
start_date:必需。代表時間段內的起始日期,可以是帶引號的日期文本字符串,比如「2016-8-8」,也可以是日期序列值、其他公式或者函數返回的運算結果,比如DATE(2016,8,8)等等。
end_date:必需。代表時間段內的結束日期,結束日期要大於起始日期,否則將返回錯誤值#NUM!。
unit:必需。代表日期信息的返回類型,該參數不區分大小寫,不同的unit參數對應返回的結果如下表所示。
Unit參數
DATEDIF函數返回結果
Y
日期時間段中的整年數
M
日期時間段中的整月數
D
日期時間段中的天數
MD
日期時間段中天數的差。忽略日期中的月和年
YM
日期時間段中月數的差。忽略日期中的日和年
YD
日期時間段中天數的差。忽略日期中的年
結合下面的案例,介紹一下DATEDIF函數的前三種基礎用法:
兩日期相差天數
=DATEDIF(A2,B2,"d")
兩日期相差月數
=DATEDIF(A2,B2,"m")
兩日期相差年數
=DATEDIF(A2,B2,"y")
忽略月和年,兩日期相差天數
=DATEDIF(A2,B2,"md")
忽略日和年,兩日期相差月數
=DATEDIF(A2,B2,"ym")
忽略年,兩日期相差天數
=DATEDIF(A2,B2,"yd")
02 DATEDIF函數根據身份證號計算年齡
大家都知道,身份證號碼裡信息量很大的,比如可以從身份證號算出來年齡。
那麼如果要從大量的身份證號碼中提取年齡,如何批量搞定呢?
下面結合一個案例來具體介紹:
C2單元格輸入以下公式:
=DATEDIF(--TEXT(MID(B2,7,8),"0-00-00"),NOW(),"y")
(更詳細的公式原理解析和說明請點擊本文底部的「閱讀原文」獲取)
03 DATEDIF函數根據入職日期計算工齡
工作中經常要計算兩個日期之間的間隔時間,DATEDIF函數就是處理這類問題要使用到的一個高頻函數,雖然在Excel中的函數列表中找不到這個函數,甚至幫助文件中也沒有相關說明。
但是DATEDIF函數是一個功能十分強大的日期函數,在工作中的應用非常廣泛,用於計算兩個日期之間的天數、月數或年數。
下面結合一個實際案例,介紹DATEDIF函數根據入職日期計算工齡(精確到幾年幾月幾天)的方法。
上圖所示表格中包含員工的入職日期和要計算工齡的截止日期,黃色區域輸入公式進行計算。
D2單元格輸入以下公式:
=TEXT(SUM(DATEDIF(B2,C2,{"y","ym","md"})*10^{4,2,0}),"0年00月00天")
(更詳細的公式原理解析和說明請點擊本文底部的「閱讀原文」獲取)
04 DATEDIF函數根據入職日期計算工齡工資
很多企業都有工齡工資,即根據員工服務的年數計算對應的工齡工資。
下面結合一個實際案例,來介紹計算工齡工資的方法。
表格中包含員工的入職日期和計算工齡的截止日期,黃色區域需要寫公式進行工齡工資的計算。
計算工齡工資的規則有兩條:
1、 員工每滿一年,加50元工齡工資
2、 員工的工齡工資上限是20年,超出20年以後也按20年計算。
在D2單元格輸入以下公式:
=50*MIN(20,DATEDIF(B2,C2,"y"))
(更詳細的公式原理解析和說明請點擊本文底部的「閱讀原文」獲取)
05 DATEDIF函數實現生日提醒
DATEDIF函數不但可以直接統計出兩個日期間隔的年數、月數、天數,而且還有很多延伸應用,比如實現生日提醒功能。
上圖案例中,要Excel實現根據員工的出生日期,在10天內實現生日提醒。
C2單元格輸入以下公式:
=TEXT(10-DATEDIF(B2,NOW()+10,"yd"),"0天後生日;;今日生日")
(更詳細的公式原理解析和說明請點擊本文底部的「閱讀原文」獲取)
DATEDIF函數配合其它函數,還可以實現比較複雜的計算。
表格中包括員工的服役日期、和計算日期,要計算服役年數,要求結果準備到0.5年。
規則:
1、 零頭不足整年的,滿6個月算1年
2、 1天至6個月算0.5年
D2單元格輸入以下公式:
=CEILING(DATEDIF(EDATE(B2,-1)+1,C2,"m")/12,0.5)
(更詳細的公式原理解析和說明,請點擊本文底部的「閱讀原文」獲取)
【跟李銳學Excel】推薦閱讀
(點擊藍字可直接跳轉)
Excel教程2016合集(文尾有彩蛋)
李 銳
微軟全球最有價值專家MVP
新浪微博Excel垂直領域第一籤約自媒體
百度名家,百度閱讀認證作者
每日分享職場辦公技巧教程
高效工作,快樂生活!
微博 @Excel_函數與公式
微信公眾號(ExcelLiRui)
▼點擊左下方「閱讀原文」,訂閱完整版教程。