如圖的工作表中有一份某公司員工信息表,下面的公式可利用入職時間來計算員工的工齡。要求如下:
●所有的日期只按年和月進行計算,忽略日。
●當入職日期與統計日期相差年數的小數部分不足0.5年,則舍去;
●如入職日期與統計日期相差年數的小數部分等于或超過0.5年,則進為1年。
根據要求,利用日期計算出相差的整月份數以便于計算小數年份,F3單元格公式如下:
=ROUND(DATEDIF($E3-DAY($E3)+1,$G$1-DAY($G$1)+1,"m")/12,)
公式主要利用計算月份數除以12來求得帶小數的工齡,再利用ROUND函數來進行取舍,但由于DATEDIF對日期是嚴格對“日”統計,如E5的日期是“12月31日”,而統計截止日期是“6月30日”,如果利用月末日期計算則會少算1個月,因此必須利用將日期對應的月首日期進行計算,如按E5計算出的整月份為330月,除以12得27.5,再四舍五入為28年。
除了這個函數以外,Excel提供的另外一個函數“YEARFRAC函數”也可以實現,如G3單元格公式如下:
=ROUND(YEARFRAC($E3-DAY($E3)+1,$G$1-DAY($G$1)+1),)
當然,如果嚴格對年月日進行計算,YEARFRAC函數公式更加簡單。
=ROUND(YEARFRAC($E3,$G$1),)