今天一位搞財務的mm問我excel計算工齡的問題,我想了想,還真不會啊。搞測試的,寫case,報進度,統計bug一般都是用excel,還真沒弄過計算工齡日期生日之類的。
她的要求是:
居然不會,想了半天想到2個方案:1、用perl寫個指令碼給她;2、把資訊匯入資料庫,用select 語句查詢再把結果匯出;
後來仔細想想,這種不符合她的要求,人家要去用excel解決。於是,我就開始查詢excel function,關於日期處理的。
在一般的程式語言與資料庫中,都有取得當前日期與字串處理的函式,於是我就按照這個思路查詢。(她沒要求計算出3.5年工齡這樣的,只要求給出整年整月的)
excel取得當前日期的函式是:
today() 取得系統日期 顯示:
1/2/2013
now() 取得系統日期和當前時間
1/2/2013 12:13
因為不需要系統時間,所以就選today()
時間處理函式:datedif(start_date,end_date,unit)
datedif函式的start_date和end_date引數就是起止日期,而unit則是使用者希望datedif函式返回的數值是以什麼為單位的。unit單位有六種,
分別是: "y":整年 "m":整月 "d":整天 "ym":不到一年的月數 "yd":不到一年的天數 "md":不到乙個月的天數 需要注意的是
注意:1.datedif函式輸入unit引數時一定要加上雙引號。2.start_date
例子:datedif("2001-09-01","2013-01-01","y") 11
datedif("2001-09-01","2013-01-01","ym") 4
datedif("2001-09-01","2013-01-01","md") 0
datedif("2001-09-01","2013-01-01","yd") 122
剩下的就easy了,需要用到是
excel連線符&
取得 datedif(a2,b2,"y")&"-"&datedif(a2,b2,"ym")&"-"&datedif(a2,b2,"md") 整年 整月 整日 的工
額外思考:
如果是身份證號提取出生日期呢?
首先判斷身份證號是不是18位,len(str)
=if(len(str)=18,true,false)
擷取出生年mid(a2,7,4) 從a2單元格第七位算起,擷取4個(7、8、9、10)
如何使用excel計算工齡
今天一位搞財務的mm問我excel計算工齡的問題,我想了想,還真不會啊。搞測試的,寫case,報進度,統計bug一般都是用excel,還真沒弄過計算工齡日期生日之類的。她的要求是 居然不會,想了半天想到2個方案 1 用perl寫個指令碼給她 2 把資訊匯入資料庫,用select 語句查詢再把結果匯出...
Excel計算年齡(工齡)方法一則
剛才在excel小組有人問excel問如何計算年齡 工齡 的問題,其實方法特別多,這裡就說乙個方法使用yearfrac和int函式來計算。語法 yearfrac start date,end date,basis 要點應使用 date 函式輸入日期,或者將函式作為其他公式或函式的結果輸入。例如,使用...
工齡計算方案
根據需求不同,一般工齡計算會有兩種方案,一種是直接以天數表示,一種是以年月日的格式表示。兩種情況的計算的方式不同,所以整理記錄一下。1 以天數的表示方式 思路 直接用兩個日期相減,得到天數即可 1 from datetime import datetime23 4def cal working ag...