我有一个员工休假记录系统。如果休假跨越两个日历月的部分时间,我需要将休假天数分配到休假的月份。例如:
2017 年 1 月 30 日 - 2017 年 2 月 3 日 (5 天)
将 5 天拆分为各个月份如下:
这是手动完成的。如何使用公式自动完成此操作?
答案1
您实际上可以使用最少的日期函数和日期数学来完成此操作:
唯一的公式在输出部分。
A8 仅
=A3
显示月份名称,只是简单的格式化,它是一种标准格式。A9 只需要显示下个月的名称,这也是一种格式化,但获取下个月的日期的方法有很多。我使用的公式是:
=日期(年(A3),月(A3)+1,1)
这将给出 A3 中的日期之后的月份的第一天。
休假天数可以都在同一个日历月,因此 B8 中的公式如下:
=MIN(DAYSINMONTH(A3)-DAY(A3)+1,B3)
(假设休假不能超过一个月。)该公式返回该月剩余天数或在 B3 中输入的天数中的最小值。
B9 是 B3 中的天数与 B8 中计算结果之间的差值(如果休假不跨越数月,则结果可能为零):
=B3-B8
顺便说一句,这可以跨越年份界限。