date和如果function在一起

感谢您的时间!

我希望Excel能够确定多个条件的date。

如果A1中的给定date为1980年11月29日,且其中一个条件为2016年6月30日,则date应为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 

上表是我正在寻找的实际解决scheme。 我有大量的数据,每个月都要处理。 第二个条件涉及奇数和偶数年。

如果可能,请帮助我。

提前谢谢了!

你可以使用这个公式:

 =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) 

这取决于条件date和joindate之间的年份差异。 然后除以2得到两年之间可以适应的数量。 让我们打电话给这个YearDiff来解释。 那么我们有:

 EDATE(A2,24*YearDiff) 

这增加了2年(24个月)到joindate的数量。 这可能是期望的结果,但有可能超过条件date。 让我们调用这个Result1 。 这是最后一部分进来的地方:

 IF(Result1 > C2, subtract 2 years from Result1, Result1) 

它应该看起来像这样(但是用;replace):

在这里输入图像描述

在B单元格中input公式后,可能会看到数字,而不是date。 在这种情况下,只需将date格式应用于它们。

注释关于条件的含义

在您的意见中,您解释说10-Sept-2015 30-Sept-2015的结果是错误的,因为截止date是31-Aug-2015 。 这似乎不必要的复杂:在这种情况下把截止date的条件。 把一个月后的date作为“条件”是很奇怪的。 如果还想保持这种状态,则将公式更改为此( >C2被replace为>=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)))