感谢您的时间!
我希望Excel在多个条件下确定日期。
如果A1中的给定日期是1980年11月29日,其中一个条件是2016年6月30日,那么该日期应该到2014年11月29日。有关更多条件,请参阅下表。
Date of joining As of this year Condition 1
27-Jun-05 27-Jun-15 30-Sep-15
02-Jul-05 02-Jul-15 30-Sep-15
10-Sep-05 10-Sep-13 30-Sep-15
01-Dec-05 01-Dec-13 30-Sep-15
15-Jul-06 15-Jul-14 30-Sep-15
07-Aug-06 07-Aug-14 30-Sep-15
上表是我正在寻找的实际解决方案。我有大量数据,每个月都要处理。第二个条件涉及奇数和偶数年。
请尽可能帮助我。
非常感谢提前!
答案 0 :(得分:3)
你可以使用这个公式:
=IF(EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2))>C2,
EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2)-24),
EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2)))
它可能看起来很复杂,但它有很多重复。每个部分都解释说:
TRUNC((YEAR(C2)-YEAR(A2))/2)
这取条件日期和加入日期之间的年份差异。然后将它除以2得到两年之间可以拟合的2年数。让我们称之为 YearDiff 以便于解释。然后我们有:
EDATE(A2,24*YearDiff)
这增加了加入日期为2年(24个月)的数字。这可能是期望的结果,但它有可能超过条件日期。让我们称之为 Result1 。这是最后一部分的来源:
IF(Result1 > C2, subtract 2 years from Result1, Result1)
它应该如下所示(但将;
替换为,
):
可能是在B细胞中输入公式后,您可以看到数字,而不是日期。在这种情况下,只需将日期格式应用于它们。
在评论中,您解释说条件为10-Sept-2015
时结果30-Sept-2015
不正确,因为截止日期为31-Aug-2015
。这似乎是不必要的复杂:在这种情况下,将截止日期置于条件中。把一个月后的日期作为"条件"是很奇怪的。如果您仍希望以这种方式保留,请将公式更改为此(>C2
替换为>=DATE(YEAR(C2),MONTH(C2),1)
):
=IF(EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2))>=DATE(YEAR(C2),MONTH(C2),1),
EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2)-24),
EDATE(A2,24*TRUNC((YEAR(C2)-YEAR(A2))/2)))