Excel VBA之日期篇 4.6 临时工结算无烦恼 月末日期是关键

前景提要

每到年末都是每个公司人员流动比较大的月份,因为这几个月都是人员离职,入职的高峰期,在这样的情况下,公司的某些岗位可能就会出现人手不足的情况,在这样的情况下,一些公司就会不得不招聘一些兼职或者是临时工来临时顶替下,请临时工是比较容易的时候,人才市场有很多临时工,但是在月末结算临时工的工钱的时候,就成为了很多HR比较头疼的问题了,因为临时工进入公司的时候各不相同,同时他们工作的时间也不尽相同,这也导致在财务统计上面非常的头疼,虽然之前我们学了如何通过datediff方法来计算两个日期之间的差距,但是现在的问题就是很多财务都是月底统一出账的,而月底最后一天的日期又不尽相同,那我们应该如何来计算。

方法分析

前面我们已经分析了想要实现这样的效果的最大的问题就是月底最后一天的日期,按照日期来看,有些月份有30天,有些月份有31天,有些月份还有28天,29天的,这也给统计工作带来了烦恼,不可能每次都在代码中将日期写死了,这样并不是一个合格的小脚本,今天就来和大家分享下月底最后一天日期的算法,这里我们需要学习一个日期类的新方法,E0MOTHN方法,他的语法形式是这样的:EOMONTH(start_date,months)  ,需要提供两个参数,开始日期,另外一个就是月份数,这个月份数的意思就是,如果你想要得到开始日期当月的最后一天,那就是0,如果想要得到一个月之后的月末最后一天,那就是1,我们来看看案例会更好理解一点。

场景模拟

假设现在我们手上有这样的一份临时工和兼职的入职时间,因为财务都是在月底统一结算工资的,所以这里我们的计算周期都是按照月末最后一天来结算的,前面的7个临时工都是当月结算,当月走人的,后面的7个兼职则是2个月之后走人的,2个月之后一起结算的

我们这里需要使用到E0MOTHN方法,来看看代码

Sub test()Dim iFor i = 2 To 14 If i < 7 Then Cells(i, "g") = WorksheetFunction.EoMonth(Cells(i, "f"), 0) Else Cells(i, "g") = WorksheetFunction.EoMonth(Cells(i, "f"), 2) End If Cells(i, "h") = DateDiff("d", Cells(i, "f"), Cells(i, "g")) & "天"Next iEnd Sub

效果展示下

很轻松就算出了当月的最后一天的日期,以及兼职的天数,完美的实现了我们的要求。

代码解析

这里我们来看看EoMonth的使用方法

If i < 7 Then Cells(i, "g") = WorksheetFunction.EoMonth(Cells(i, "f"), 0) Else Cells(i, "g") = WorksheetFunction.EoMonth(Cells(i, "f"), 2) End If

前7行,我们假设需要得到当月的最后一天的日期,这里我们需要留意EoMonth最后一个参数,是0,因为是当月的日期,所以这里直接写0 就可以了,不需要在进行叠加了。

而后面7行,我们假设需要计算两个月之后的月末最后一天的日期,因为是2个月,所以EoMonth的的最后一个参数要写成2,这样得到的就是2个月之后的那个月份的最后一天的日期了,比方说2月,2个月之后就是4月,得到的结果就是4月的最后一天的日期,4-30

之后的工作天数就直接使用我们之前学过的datediff方法就可以得到了。

(0)

相关推荐

  • Excel中常用日期函数的用法:14个公式满足工龄、年龄、账龄计算

    [温馨提示]亲爱的朋友,阅读之前请您点击[关注],您的支持将是我最大的动力! 在Excel中,日期是可以参与计算的,比如我们工作中计算星期.年龄.工龄.账龄.利息,以及复杂一点的汇总某个时间段的数据等 ...

  • 本月累计和本年累计,你会计算吗?

    前几天,我收到了一位小伙伴的求助,是这样两张表: 具体要求为: 1.月累计要计算本月1日到截至昨天的数据 2.年累计要计算1月1日到截至昨天的数据 这里涉及了三个日期:1月1日.本月1日.昨天 其中第 ...

  • Excel VBA之函数篇-3.15数据筛选无烦恼 多样组合来助力

    Excel VBA之函数篇-3.15数据筛选无烦恼      多样组合来助力 前景提要 在日常的工作中,数据筛选是我们经常都需要面对的事情,excel在这方面提供的选择并不算是很多,最常见的筛选功能, ...

  • Excel VBA之函数篇-3.5时间录入无烦恼

    Excel VBA之函数篇-3.5日期录入无烦恼 前景提要 之前我们分享了一个人能够实现简单录入的choose函数,其他它本身是一个选择函数,不过我们灵活掌握了它的功能和用处之后,将他转换在实际的工作 ...

  • Excel VBA之函数篇-3.22 轻松转换单元格格式

    前景提要 最近在工作的时候,经常碰到不少的同事跑过来让我帮忙看看单元格的格式之类的修饰问题,其实这也算是大家日常工作中比较常见的操作,因为不同的工作环节不同的要求,就算是相同的数据,大家对于展示上面的 ...

  • Excel VBA之函数篇-3.21简易数字提取法 用的好方便过正则

    前景提要 最近有一些童鞋后台留言反馈,自己在日常的工作中需要做一些数据的提取,手工操作的话,是比较的麻烦并且浪费时间,既然VBA如何强大,是不是有一些比较好的方法呢?小编写了下,还真有一个比较简单的函 ...

  • Excel VBA之函数篇-3.20 半角or 全角 数据处理并不难

    场景说明 可能看见标题的时候,很多的童鞋都是懵逼的状态的,什么全角半角?不太了解吗?看来如果这些童鞋的公司也有这样的要求的话,估计就要遭殃咯,我们来看下右下角的输入法, 普遍常用的就是搜狗输入法和QQ ...

  • Excel VBA之函数篇-3.19大数据时代必备查找技能 万条数据能奈我何

    前景提要 经常看电视或者是一些招聘信息的童鞋,应该就比较熟悉大数据这个概念,大数据简单的理解就是非常庞大的数据处理,数据量的提升,最直接的结果就是普通的数据处理方法越来越慢了,现在也是推出了很多种针对 ...

  • Excel VBA之函数篇-3.18跨越sheet统计数据 VBA强大的超乎想象

    前景提要 昨天我们分享了那个案例之后,相信很多的童鞋都会觉得那个函数有点多此一举,虽然可以形成透视表,但是面对数据不大的情况下,通过简单的复制粘贴在直接用透视表就可以了,并不需要写代码,这说法大家还没 ...

  • Excel VBA之函数篇-3.17多列数据统计不头疼,准时下班好轻松

    前景提要最近有同事让我帮忙看看有没有什么好方法来帮助他统计下假期期间各分店的销售总和,求和,不是有最简单的求和函数SUM吗?直接丢给他一句不是有求和公式嘛,但是他还是一脸无奈的让我过去帮忙,本着大家都 ...

  • Excel VBA之函数篇-3.16多样筛选组合任君选 筛选功能从此是路人

    前景提要 昨天我们分享了如何通过like()函数来实现数据的筛选,可能是因为昨天忙于赶车,比较着急,我看了下我好像并没有完全介绍完一些比较常用的功能,今天就继续来分享下like()函数在筛选方面的强大 ...