用excel表计算员工工龄方法

“工龄”是人事管理和劳资管理中经常涉及到的一项重要内容,员工的职务升迁、薪资和各种福利想必都与之有关吧!这个“东东”可千万不能算错,不然会有人来找麻烦哟!

若只需要大致计算出几名员工的工龄或许按按计算器就能搞定了,但若需要准确计算出成百上千名员工的工龄,恐怕就……没关系,别忘了你手头还有强大的Excel !

工龄好算吗

在Excel 里,将两个日期值相减,即可得出其中间隔的天数(以序列数表示),但这个数字并不是我们所需要的最终结果。你能说,“XXX的工龄是3721天”吗?当然不行。所以,我们需要的是“XX年XX 月XX 天”这样的格式,而不是单纯的“XXXX天”。

既然要求已经提出来了,那么该如何进行计算呢?有朋友可能要说了,这还不简单?把前面得到的天数除以365,不就是年数了?其余数除以30,不就是月数了?再剩下的,就是天数嘛。当然,这样的算法可以大致计算出我们需要的数字,但不准确。因为,一年并不都是365天,一个月也并不都是30天,所以这种算法存在着相当的误差,而在某些特殊的日期下,误差可能相差一个月!不信的话自己试试。

利用公式算工龄

想要算得既快又准,在Excel 里还真不是三五个公式就能解决的,以至于有了下面这个自定义的公式Elapsed( )。源代码(加注释)已在文末附上,了解VBA 的朋友可以看看,不知道VBA 的朋友大可按说明“复制”—“粘贴”后,其他的事放到脑后去好了。下面先来讲一讲它的用法。

图1

Elapsed(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

StartY ear = Year(StartDate) '从参数中取得开始日期和结束日期的年数, 月数, 天数

StartMonth = Month(StartDate)

StartDay = Day(StartDate)

EndY ear = Year(EndDate)

EndMonth = Month(EndDate)

EndDay = Day(EndDate)

If EndDay

EndDay = EndDay + (DateSerial(EndYear, EndMonth + 1, EndDay) -DateSerial(EndYear, EndMonth, EndDay))

EndMonth = EndMonth - 1 '……从月数中借1后再进行减运算, 从而得到相差天数

End If

If EndMonth

EndMonth = EndMonth + 12

EndY ear = EndYear - 1 '……从年数中借1后再进行减运算, 从而得到相差月数

End If

Select Case ReturnType '如果没有以上特殊情况, 则直接进行相减的运算

Case 1 '返回年数

Elapsed = EndYear - StartY ear

Case 2 '返回月数

Elapsed = EndMonth - StartMonth

Case 3 '返回天数

Elapsed = EndDay - StartDay

End Select

End Function

在你的工作簿中打开VBA 编辑器,新建一个模块,将以上代码输入即可!

“工龄”是人事管理和劳资管理中经常涉及到的一项重要内容,员工的职务升迁、薪资和各种福利想必都与之有关吧!这个“东东”可千万不能算错,不然会有人来找麻烦哟!

若只需要大致计算出几名员工的工龄或许按按计算器就能搞定了,但若需要准确计算出成百上千名员工的工龄,恐怕就……没关系,别忘了你手头还有强大的Excel !

工龄好算吗

在Excel 里,将两个日期值相减,即可得出其中间隔的天数(以序列数表示),但这个数字并不是我们所需要的最终结果。你能说,“XXX的工龄是3721天”吗?当然不行。所以,我们需要的是“XX年XX 月XX 天”这样的格式,而不是单纯的“XXXX天”。

既然要求已经提出来了,那么该如何进行计算呢?有朋友可能要说了,这还不简单?把前面得到的天数除以365,不就是年数了?其余数除以30,不就是月数了?再剩下的,就是天数嘛。当然,这样的算法可以大致计算出我们需要的数字,但不准确。因为,一年并不都是365天,一个月也并不都是30天,所以这种算法存在着相当的误差,而在某些特殊的日期下,误差可能相差一个月!不信的话自己试试。

利用公式算工龄

想要算得既快又准,在Excel 里还真不是三五个公式就能解决的,以至于有了下面这个自定义的公式Elapsed( )。源代码(加注释)已在文末附上,了解VBA 的朋友可以看看,不知道VBA 的朋友大可按说明“复制”—“粘贴”后,其他的事放到脑后去好了。下面先来讲一讲它的用法。

图1

Elapsed(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

StartY ear = Year(StartDate) '从参数中取得开始日期和结束日期的年数, 月数, 天数

StartMonth = Month(StartDate)

StartDay = Day(StartDate)

EndY ear = Year(EndDate)

EndMonth = Month(EndDate)

EndDay = Day(EndDate)

If EndDay

EndDay = EndDay + (DateSerial(EndYear, EndMonth + 1, EndDay) -DateSerial(EndYear, EndMonth, EndDay))

EndMonth = EndMonth - 1 '……从月数中借1后再进行减运算, 从而得到相差天数

End If

If EndMonth

EndMonth = EndMonth + 12

EndY ear = EndYear - 1 '……从年数中借1后再进行减运算, 从而得到相差月数

End If

Select Case ReturnType '如果没有以上特殊情况, 则直接进行相减的运算

Case 1 '返回年数

Elapsed = EndYear - StartY ear

Case 2 '返回月数

Elapsed = EndMonth - StartMonth

Case 3 '返回天数

Elapsed = EndDay - StartDay

End Select

End Function

在你的工作簿中打开VBA 编辑器,新建一个模块,将以上代码输入即可!


相关文章

  • 工资可行性分析报告
  • 工资管理信息系统可行性分析报告 姓名:葛蒂 班级:会计6班 学号:1004030620 引言 (1) 编写目的 计算机代替手工记帐.计算和制作报表工作. (2) 背景 随着我国国民经济建设的蓬勃发展,各个行业都在积极使用现代化的手段,不断改 ...查看


  • 2016年计算机二级MS Office,Excel函数公式大集合
  • (2)图书名称 =VLOOKUP(D3,编号对照!$A$3:$C$19,2,FALSE) (3)单价 =VLOOKUP(D3,编号对照!$A$3:$C$19,3,FALSE) (4)小计 =[@单价]*[@销量(本)] (5)所有订单的总销 ...查看


  • 计算机二级办公软件
  • 浙江省计算机二级考试office 办公软件Excel 解答 2011-04-21 12:32:26| 分类: 默认分类 | 标签: |字号大中小 订阅 E1-产品灯: 1. 使用数组公式,计算Sheet1中的每种产品的价值,将结果保存到表中 ...查看


  • PowerHR宣传册
  • Thrivesoft Thrivesoft Thrivesoft 一.公司简介 洛阳赛威软件科技有限公司是一家高速成长的技术型公司.主要从事PowerHR电力人力资源管理软件的研发.咨询.实施及服务.不断为用户提供务实创新的应用解决方案.赛 ...查看


  • 公司人力资源调研报告
  • ABC公司系统实施文档 --人力资源 调研报告 中国ABC公司公司 二零一一年三月 文档控制 修改记录 审核记录 目 录 1 2 概述 .................................................... ...查看


  • 职工工资的数学模型(最新2)
  • 承 诺 书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话.电子邮件.网上咨询等)与队外的任何人(包括指导教师)研究.讨论与赛题有关的问题. 我们知道,抄袭别人的成果是违反竞赛规 ...查看


  • 根据工龄计算年假天数的4种方法
  • 跟李锐学Excel, 高效工作,快乐生活. 根据工龄计算年假天数的4种方法 今天我来结合一个实际案例,介绍1个公式根据工龄计算年假天数的4种方法. 如下图所示(黄色区域处输入公式) [职工带薪年休假条例] 根据职工累计工作年限而定: 1.已 ...查看


  • 试题及解析(三)excle篇
  • 六.Excel2003高级应用 考生文件夹:d:\result\126204116 22题 1.使用IF 函数,对Sheet1中的"温度较高的城市"列进行自动填充. ①单击D2单元格--单击 ②设置如图: "插 ...查看


  • 关于员工工龄工资管理规定
  • 关于工龄工资管理规定 为了尊重员工为公司发展创造的价值和贡献,激励员工和企业共同发展,给公司员工增加相应的福利,实现利润共享,特制定工龄工资管理制定.现将工龄工资的具体要求及计算标准做如下规定: 一.适用范围 与本公司正式签订劳动合同的所有 ...查看


热门内容