当前位置: 首页 > 知识库问答 >
问题:

Excel:获取给定年份中开始日期和结束日期之间的月份,或者如果开始日期在上一年,则获取结束日期之前的月份

姜博
2023-03-14

简要背景:我在保险业工作,出于各种税收原因,我们通常需要知道雇员一年受雇多少个月,以及他们获得保险的月份。雇员在受雇60天后的第一个月有资格获得保险。

获取资格日期很简单。从技术上讲,获取受雇和提供的月数很简单……直到我遇到跨越多年的情况。为了我的报告的目的,我只需要知道2017年的数据。例如,R3在2017年只受雇两个月,所以我需要“#Mon Emp”为2。我目前使用的是=DATEDIF(F2,H2 15,“m”),但这给了我整整6个月的时间。

然后,如果“术语日期”中没有值(即它们仍然被雇用),我也会遇到一个问题。我知道一定有一个公式可以帮助我,但我对Excel公式不太了解,而且我在任何其他问题中都找不到类似的东西。我不能只是将雇用日期更改为1 / 1 / 2017,因为这会弄乱资格。

非常感谢所有的帮助!

共有1个答案

萧树
2023-03-14

以下是您正在寻找的方法,假设如下:

  • "雇用日期"是F栏,始终是最早的日期
  • “资格日期”是G列,并且总是早于“学期日期”
  • “学期日期”是H列,要么是空白的,要么是2017年的日期
  • 下面的公式输出2017年雇用的完整月数,您应该能够相当容易地将这些转换为当年提供的福利月数(下面的示例显示了第2行数据的公式)

公式。。。

IF(ISBLANK(H2),IF(YEAR(F2)=2017,DATEDIF(F2,DATE(2018,1,1),"m"),12),IF(YEAR(F2)=YEAR(H2),DATEDIF(F2,H2,"m"),DATEDIF(DATE(YEAR(H2)-1,12,31),H2,"m")))

分解它...

如果“学期日期”为空:ISBLANK(H2),则获取截至2017年底的雇用月数。

用于获取截至2017年底的雇佣月数的公式部分:< code>IF(YEAR(F2)=2017,DATEDIF(F2,DATE(2018,1,1)," m "),12)

如果“雇用日期”是在 2017 年:YEAR(F2)=2017 期间,则获取从“雇用日期”到 2017 年底的月数:DATEDIF(F2,DATE(2018,1,1),“m”),否则假设“雇用日期”在 2017 年之前,从而产生 12 个月:12 个月。

如果“任期日期”不为空,则通过“任期日期”得到2017年的就业月数。

公式部分获得2017年至“期限日期”的雇佣月数:

< code>IF(YEAR(F2)=YEAR(H2),DATEDIF(F2,H2," m "),DATEDIF(DATE(YEAR(H2)-1,12,31),H2," m))

如果雇用日期和任期日期相同:YEAR(F2)=YEAR(H2),则获取日期之间的差异:DATEDIF(F2, H2,"m"),否则获取前一年12月31日与“任期日期”之间的差异:DATEDIF(DATE(YEAR(H2)-1,12,31), H2,"m")

重要说明…

您可以通过将公式部分中的2017DATE(2018,1,1)替换为对单元格的引用来更新公式以适用于任何计算年,以便对不同年份运行计算, 以获取截至2017年底的月数。

 类似资料:
  • 问题内容: 如何从数据库中获取查询的开始日期和结束日期。 谢谢, 问题答案: http://sqltutorials.blogspot.com/2007/06/sql-first-and-last-day-of- month.html 唯一没有涉及的是如何获取当前日期…请参阅rexem的帖子。

  • 问题内容: 以下是我用来计算给定月份的星期开始日期和结束日期的代码。假设周开始日期为MONDAY,周结束日期为SUNDAY。例如,2013年1月将有5个星期。如果月份从星期日开始- 忽略该天 2013年1月第一周-2012年12月31日至2013年1月6日第二周-2013年1月7日至2013年1月13日第三周-2013年1月14日至2013年1月20日第四周-21日-2013至2013年1月27日

  • 问题内容: 我需要Java中本月的开始日期和结束日期。当JSP页面加载了当前月份时,它将自动计算该月份的开始和结束日期。它应该与年份和月份无关。也就是说某个月有31天或30天或28天。这也应该满足a年。你能帮我吗? 例如,如果我在列表框中选择“五月”,则需要开始日期为1,结束日期为31。 问题答案: 你去了: PS:类只是两个值的一对。

  • 问题内容: String febSt = “02/01/2014” ; String febEnd = “02/28/2014” ; 上面的代码是我的输入,我需要“ 03/01/2014”和“ 03/31/2014”作为输出。我尝试了更多代码,也使用了日历功能,但没有结果。从该程序中,我需要下个月的开始和结束日期。 我尝试了更多示例输入,如果我将这些日期作为下个月2月返回的输入,将在2月,4月,6

  • 问题内容: 如果可能的话,在以下情况下,我希望使用joda或非joda解决方案 假设我的一周从2012年5月2日开始,给定的当前日期为02/22/2011。我需要计算给定当前日期的星期开始和结束日期。因此,我的解决方案的星期应该从02/19开始,而星期在02/25结束。为简单起见,我将我的工作日设置为02/05/2011,但是可能是任何一天,我的工作日始终为7天。 我现有的代码如下,但似乎无法按预

  • 问题内容: 我想检查日期是否在开始日期和结束日期之间。 我添加了一个where子句 但问题在于它不包含“ 2010-04-15”。 它应该包括结束日期,我该怎么办? 请帮我 问候, 潘卡 问题答案: 明确指定时间部分: