Excel:如果开始是在前一年,则在给定年份或月份到结束日期之间获得开始和结束日期之间的月份

问题描述 投票:0回答:1

简要背景:我在保险业工作,由于各种税务原因,我们经常需要知道员工一年中有多少个月,以及他们提供多少个月的保险。雇员在工作60天后的第一个月就有资格获得保险。

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

然后,如果“Term Date”中没有值(即它们仍在使用中),我也会遇到问题。我知道必须有一个可以帮助我的公式,但我对Excel公式并不过分了解,而且我在其他任何问题中找不到类似的东西。我不能只将雇用日期更改为2017年1月1日,因为这会影响资格。

Data set up

非常感谢任何和所有的帮助!

excel date date-difference
1个回答
1
投票

假设以下内容,您可以采用以下方法:

  • “雇用日期”是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年底的月数的公式部分: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年的工作月数:

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年底使用的月数,并引用可以输入相关值以便运行计算的单元格不同的年份。

© www.soinside.com 2019 - 2024. All rights reserved.