Excel VBA之日期篇 4.1 在职时间计算 转为HR量身打造

前景提要

经过了大半个月左右的时间,我们终于完成了VBA函数篇的分享,在函数篇中,我们需要的都是一些非常基础的知识,这些非常基础的知识,可能大家并不是很感兴趣,毕竟能够解决的问题并不是很多,后面我们将会尽量将知识点和实际的场景相结合,尽量帮助大家解决更多的问题,本篇章我们主要分享的是一些日期和时间相关的知识,希望可以解决大家在日常工作中在时间处理上面的一些问题,如果大家有什么相关的问题,也可以提出来,我尽量帮助大家解决。

场景说明

今天我们要分享的是两日期之间的计算,这在HR日常的工作中是经常需要用到的,比方说计算某员工在岗位多久了,或者说某客户上次购买产品到现在相差了多久,以此来计算出客户的购买频率等,日期之间的计算有很多种不同的结果,有时候我们想要大致的结果,比方说相差多少月,但是有时候我们需要得到两个日期相差了多少天,这就比较麻烦了,其实我们可以使用datediff来帮助我们实现这个作用,一起来看看例子吧。

比较具有代表性的例子,就是HR日常工作中的在职员工的在岗时间,或者说是工龄计算了,俗话说铁打的营盘流水的兵,人员流动已经成为了常态,每个员工的入职时间又不尽相同,每次核算员工在岗时间的时候,对于很多的HR来说都是非常头疼的问题,公司结构比较稳定的还好说,基本上人员流动性不算很大,但是在很多的工厂、车间,人员的流动性就非常的大了,一次10+人员的进进出出,算了一批还有一批,下次核算的时候,又有新人进,旧人走,永远都是一个头疼的问题,不要怕,今天小编就来将给为HR带出苦海

假设现在我们手上有这样的一份入住人员的登记表,因为各个公司要求不同,可能有时候需要按照天数来结算,有时候有需要按照月份来结算,而在年后的时候,需要发年终奖的时候,就需要按照工龄,就是年来计算了,所以为了方便,小便一次性的将常用的天,月,年三种不同的计算方式都展示出来了,大家各取所需。

首先我们来计算下计算下员工在岗的天数,按照天数来计算的情况也不是没有,一般比方说业务量大的时候,临时招聘了一批临时工,临时工都是按照天来结算的,这个时候我们就需要得到这些员工在岗工作了多少天,来看代码

Sub test()

Dim i&

l = Cells(Rows.Count, 7).End(xlUp).Row

For i = 2 To l

    Cells(i, 8) = DateDiff("d", Cells(i, 7), Now()) & "天"

Next i

End Sub

看看结果

image.png

是不是成功的算出了在岗时间的天数,如果觉得不太相信的话,我们找一个比较好计算的例子,A22,是4-1入职的,小编写这篇文章的时候是4-15,15-1=14就得到了该员工的在岗时间是14天了,再挑一个远一点的,A23,3-9入职的,到4-9是正好1个月30天,再加上今天的7天,正好等于37天,所以结果是非常正确的。

那我们继续,我们来算下入职有多少个月,这个一般用在员工转正或者是员工考核的时候会使用到,比方说3月转正,入职半年即6个月之后,需要得到什么业务水平之类的,我们来看看代码

Sub test()

Dim i&

l = Cells(Rows.Count, 7).End(xlUp).Row

For i = 2 To l

    Cells(i, 9) = DateDiff("m", Cells(i, 7), Now()) & "月"

Next i

End Sub

来看看结果


image.png

是不是成功的计算出来了入职有多少月,依然我们挑几个来检验下结果,A23,入职3月,今天是4月,1个月,正确,A21,1-1入职,入职应该是3个月,没错,因为4月还没有过完,所以入职应该是3个月,如果各位HR的算法是本月也算上的话,可以在结果上+1就可以了。

哇,来到了激动人心的时刻了,计算入职多少年了,这个一般都是和年终奖挂钩的哇,小编小小激动了一下,那么入职多少年要如何来计算呢?

Sub test()

Dim i&

l = Cells(Rows.Count, 7).End(xlUp).Row

For i = 2 To l

    Cells(i, 10) = DateDiff("yyyy", Cells(i, 7), Now()) & "年"

Next i

End Sub

看看结果

image.png

准确的得到了我们想要的结果。是不是很完美。

代码解析

今天的代码解析,我们主要将两个知识点,

一个是获得当前的时间,想要获得在岗时间,肯定是用今天的日期减去入职的日期了,入职日期已经登记了,那么今天的日期如何获取呢?

=Now()

就是这么简单,上面的代码中的每个截图都提供了当前的时间时间作为参考,以方便大家进行核对。

然后就是两个时间的相减了,datediff方法

他需要提供三个参数,第一参数就是单位名称,就是你想要获得的计算结果的单位名称,是天,年,月,时,分,秒都可以,不要以为我是瞎说的哦,甚至还可以计算出两个日期相隔多少个星期,是不是很棒的一个方法呢,常见单位如下,“d”:天“yyyy”:年,“m”:月“h”:小时,“n”:分钟,“s”:秒

第二个和第三个参数就更加简单了,就是提供两个日期,开始日期和结束日期就可以了,记得顺序,小的日期在前,大的日期在后。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容