在這次前往農林航空測量所教授 Excel 2010 課程時學生提到針對到職日期來計算年資是其一直很困擾的問題,Excel 2003版本作業時,除了使用電腦計算外,為了怕錯誤並驗證年資計算結果的正確性,還必須人工作業計算一次,二者相符才算OK,因此提出是否有很簡便的函數可以幫助,使作業時間縮短。
針對這樣的需求,我們必須介紹一個函數「DATEDIF」,這個函數是針對與 Lotus 1-2-3 的相容性而提供的,但是在日期的計算方面有其獨到的地方,可以節省使用者許多日期間運算的作業時間。
下面我們就來介紹這個「DATEDIF」函數及其應用。
語法:DATEDIF(開始_日期,結束_日期,單位)
引數 |
描述 |
備註 |
開始_日期 |
代表期間的最初 (或開始) 日期。 |
無。 |
結束_日期 |
代表期間的最後 (或結束) 日期。 |
結束_日期引數必須是在開始_日期之後的日期。結束時期當天不算在最終結果中。 |
單位 |
您要傳回的資訊類型。 |
無。 |
說明:
單位 |
傳回 |
"Y" |
週期中完整的行事曆年份數。 |
"M" |
週期中完整的已命名月份數。 |
"D" |
週期中完整的已命名日期數。 |
"MD" |
從開始_日期至結束_日期的天數。日期的月和年會被忽略。 |
"YM" |
從開始_日期的月份到結束_日期的月份的月數。日期的日和年會被忽略。 |
"YD" |
從開始_日期到結束_日期的天數。日期的年會被忽略。 |
注意:
Excel 會將日期儲存為連續的序號,因此可用於計算。依預設,1900年1月1日序號是1,而 2008年1月1日是39448,因為39448這個序號是1900年1月1日之後的第39,448 天。
範例一 要依照系統日期自動計算年資
如果雪珊是1992年1月2號進公司,我們要計算其到今天為止的年資是多少年時,我們可以依照下列步驟完成。
步驟1:在A1儲存格輸入「1992/1/2」字串。
步驟2:在B1儲存格輸入「=DATEDIF(A1,NOW(),"Y")」公式字串,這時會看到B1儲存格顯示運算結果「20」,表示其年資為20年。(由於目前系統日期是2012/12/28)
這是一個非常簡便的作法,但有學生提到,老師若我的計算基準日期是一個指定的日期,可能是未來的日期或是己經過去的日期,這時又改如何計算呢?
針對這點,我們可以將計算基準日期放在A2儲存格,例如:我們的計算基準日期為「2013/1/5」,其作法如下:
步驟1:在A2儲存格輸入「2013/1/5」字串。
步驟2:在B2儲存格輸入「=DATEDIF(A1,A2,"Y")」公式字串,這時會看到B2儲存格顯示運算結果「21」,表示其年資為21年。
這樣的操作方式是非常具有效率的,當要計算的人數多達數千,甚至是以萬計筆數時,當計算基準日期有變動時,只要改動A2儲存格的內容,即可得到最新的計算結果。
如果,一定要將日期放入到公式內,我們可以將公式更改為「=DATEDIF(A1,DATE(2013,1,5),"Y")。
語法:DATE(year,month,day)
DATE 函數語法具有下列參數 (參數是將資訊提供給動作、事件、方法、屬性、函數或程序的值。):
- Year 是必要的參數,year 參數的值可以包含一到四位數。Excel 會依據我們電腦所使用的資料系統來解譯 year 參數。依預設,Microsoft Excel for Windows 是使用 1900 日期系統;Microsoft Excel for the Macintosh 則是使用 1904 日期系統。
秘訣: 建議 year 參數值使用四位數,以防止不合需要的結果,例如,使用 "07" 會傳回 "1907" 做為年份值。
如果 year 是介於 0 (零) 與 1899 (包含) 之間,則 Excel 會將該值加上 1900 以計算年份。例如,DATE(108,1,2)
會傳回 January 2, 2008 (1900+108)。
如果 year 是介於 1900 與 9999 (包含) 之間,則 Excel 會使用該值來做為年份值。例如,DATE(2008,1,2)
會傳回 January 2, 2008。
如果 year 是小於 0 或者是大於 10000,則 Excel 會傳回 #NUM! 錯誤值。
- Month 是必要的參數,代表全年一月至十二月的正或負整數。
- 如果 month 大於 12,則 month 會將該月數加到指定年份的第一個月份上。例如
DATE(2010,15,2)
會傳回代表 2011 年 3 月 2 日的序列值。 - 如果 month 小於 1,則 month 會從指定年份的第一個月份減去該月數加 1。例如
DATE(2012,-7,2)
會傳回代表 2011 年 5 月 2 日的序列值。
- 如果 month 大於 12,則 month 會將該月數加到指定年份的第一個月份上。例如
- Day 是必要的參數,代表整個月 1 至 31 日的正或負整數。
- 如果 day 大於指定月份的天數,則 day 會將天數加到該月份的第一天。例如,
DATE(2009,1,35)
會傳回代表 2009 年 2 月 4 日的序列值。 - 如果 day 小於 1,則 day 會從指定月份第一天減去該天數加 1。例如
DATE(2013,1,-15)
會傳回代表 2012 年 12 月 16 日的序列值。
- 如果 day 大於指定月份的天數,則 day 會將天數加到該月份的第一天。例如,
相關主題:
留言列表