简要背景:我从事保险行业,由于各种税收原因,我们经常需要知道员工一年中有多少个月的工作时间,以及为他们提供多少个月的保险。雇员在受雇60天后的第一个月第一天就有资格获得保险。
获取资格日期很简单。从技术上讲,获得雇用和提供的月数很简单……直到我遇到跨越多年的情况。就我的报告而言,我只需要知道2017年的数据即可。例如,R3在2017年仅受雇两个月,因此我需要将“ #Mon Emp”设为2。我目前正在使用 = DATEDIF(F2,H2 + 15,“ m”),但这给了我6个月的时间。
然后,如果“任期日期”中没有值(即仍在使用),我也会遇到问题。我知道必须有一个可以帮助我的公式,但是我对Excel公式的知识不是太了解,在其他任何问题中也找不到类似的东西。我不能只将聘用日期更改为2017年1月1日,因为这样会弄乱资格。
非常感谢您提供的所有帮助!
答案 0 :(得分:1)
以下是假设您要寻找的方法:
公式...
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")
。
重要说明...
您可以通过替换公式部分中的2017
和DATE(2018,1,1)
来更新该公式以适用于任何计算年度,该部分使用对您所在单元格的引用来获取到2017年底使用的月数可以输入相关值以便进行不同年份的计算。