用excel表計算員工工齡方法

2021-03-03 23:55:35 字數 2769 閱讀 2303

「工齡」是人事管理和勞資管理中經常涉及到的一項重要內容,員工的職務公升遷、薪資和各種福利想必都與之有關吧!這個「東東」可千萬不能算錯,不然會有人來找麻煩喲!

若只需要大致計算出幾名員工的工齡或許按按計算器就能搞定了,但若需要準確計算出成百上千名員工的工齡,恐怕就……沒關係,別忘了你手頭還有強大的excel!

工齡好算嗎

在excel裡,將兩個日期值相減,即可得出其中間隔的天數(以序列數表示),但這個數字並不是我們所需要的最終結果。你能說,「***的工齡是3721天」嗎?當然不行。

所以,我們需要的是「xx年xx月xx天」這樣的格式,而不是單純的「***x天」。

既然要求已經提出來了,那麼該如何進行計算呢?有朋友可能要說了,這還不簡單?把前面得到的天數除以365,不就是年數了?

其餘數除以30,不就是月數了?再剩下的,就是天數嘛。當然,這樣的演算法可以大致計算出我們需要的數字,但不準確。

因為,一年並不都是365天,乙個月也並不都是30天,所以這種演算法存在著相當的誤差,而在某些特殊的日期下,誤差可能相差乙個月!不信的話自己試試。

利用公式算工齡

想要算得既快又準,在excel裡還真不是三五個公式就能解決的,以至於有了下面這個自定義的公式elapsed( )。源**(加注釋)已在文末附上,了解vba的朋友可以看看,不知道vba的朋友大可按說明「複製」—「貼上」後,其他的事放到腦後去好了。下面先來講一講它的用法。

圖1elapsed(startdate,enddate,returntype)帶有三個引數:依次為開始日期、結束日期和返回型別。大家只需在使用時依次給出相應引數值,函式就會自動計算出以年、月、天表示的兩日期間間隔的天數。

returntype有三個參選項,「1」表示返回年數,「2」表示月數,「3」表示天數,因為每次只能選擇其中一種參選項,所以別指望elapsed( )一次就為你幹完所有的活兒!

工齡的計算方法

介紹完elapsed( ),我們再來看看具體的計算方法吧。

假設已有一工作表中(見圖1)記錄了各員工的入公司日期,需要計算截止今日時的工齡期,我們可以先用公式計算今日的日期值,這樣的話到了明天也就不必重算了。我們往c2單元格中輸入公式「=today( )」,這是取計算機的當前系統日期值。

假設各員工的入公司日期都記錄在c列中,則我們通過d、e、f三列來分別計算工齡的年數、月數和天數。以第6行的「張三」為例,d6、e6、f6中的公式分別為「=elapsed($c6,$c$2,1)」、「=elapsed($c6,$c$2,2)」、「=elapsed($c6,$c$2,3)」。接著在g6中用公式將上面計算的結果轉換成易於理解的文字形式。

這個公式就可以自由發揮了,您可以按自己的喜好進行設定。如:「=if(d6=0,if(e6=0,″未滿乙個月″,e6&″個月″),if(e6=0,d6&″年整″,d6&″年″&″零″&e6&″個月″))」——這個公式捨棄了不常用到的「天數」,並對0年或0個月這樣較特殊的計算結果進行了更人性化的轉換。

最後要做的,就是將d6、e6、f6、g6抹黑,往下拖曳,進行公式的複製。

到此,所有員工的工齡全部都計算完畢了!

源程式**

新建乙個excel**中,檢視工具欄 visual basic

function elapsed(startdate as date, enddate as date, returntype as integer)

dim startyear as integer '定義變數用以引數中開始日期的計算

dim startmonth as integer

dim startday as integer

dim endyear as integer '定義變數用以引數中結束日期的計算

dim endmonth as integer

dim endday as integer

startyear = year(startdate) '從引數中取得開始日期和結束日期的年數,月數,天數

startmonth = month(startdate)

startday = day(startdate)

endyear = year(enddate)

endmonth = month(enddate)

endday = day(enddate)

if endday < startday then '如果結束日期引數中的天數小於開始日期引數的天數,則……

endday = endday + (dateserial(endyear, endmonth + 1, endday)-dateserial(endyear, endmonth, endday))

endmonth = endmonth - 1 '……從月數中借1後再進行減運算,從而得到相差天數

end if

if endmonth < startmonth then '如果結束日期引數中的月數小於開始日期引數的月數,則……

endmonth = endmonth + 12

endyear = endyear - 1 '……從年數中藉1後再進行減運算,從而得到相差月數

end if

select case returntype '如果沒有以上特殊情況,則直接進行相減的運算

case 1 '返回年數

elapsed = endyear - startyear

case 2 '返回月數

elapsed = endmonth - startmonth

case 3 '返回天數

elapsed = endday - startday

end select

end function

在你的工作簿中開啟vba編輯器,新建乙個模組,將以上**輸入即可!

用Excel怎麼計算工齡

首先我們開啟乙個新的excel表建立乙個人事資訊庫框架,資訊專案的設定您可根據本單位實際情況而定。如按abcd順序分別是 編號 姓名 部門 職務 身份證號碼 性別 出生年月 年齡 民族 籍貫 戶口所在地 畢業院校 專業 學歷 學位 入職日期 試用期到期時間 提前七天提醒 勞動合同到期時間 提前三十天...

excel年齡和工齡計算

根據出生年月計算年齡 datedif a1,today y datedif a1,today y 周歲 datedif a1,now y 根據出生年月推算生肖 中國人有12生肖,屬什麼可以推算出來。即用誕生年份除以12,再用除不盡的餘數對照如下 0 猴,1 雞,2 狗,3 豬,4 鼠,5 牛,6 虎...

用excel計算財務資料的說明

一 現值計算 在excel中,計算現值的函式是pv,其語法格式為 pv rate,nper,pmt,fv type 其中 引數rate為各期利率,引數nper為投資期 或付款期 數,引數pmt為各期支付的金額。省略pmt引數就不能省略fv引數 fv引數為未來值,省略fv引數即假設其值為0,也就是一筆...