Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 日期和If一起起作用_Excel - Fatal编程技术网

Excel 日期和If一起起作用

Excel 日期和If一起起作用,excel,Excel,谢谢你抽出时间 我希望Excel在多个条件下确定日期 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-

谢谢你抽出时间

我希望Excel在多个条件下确定日期

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 
如果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 
上表是我正在寻找的实际解决方案。我有大量的数据,每个月都要处理。第二个条件涉及奇数年和偶数年

如果可能的话,请在这方面帮助我


非常感谢

您可以使用以下公式:

=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,得到两年之间可以容纳的两年数。让我们将其称为YearDiff,以便于解释。然后我们有:

EDATE(A2,24*YearDiff)
这将在加入日期之前增加2年(24个月)的时间。这可能是期望的结果,但有可能超出条件日期。我们将其称为Result1。这就是最后一部分的内容:

IF(Result1 > C2, subtract 2 years from Result1, Result1)
它应该是这样的(但将
替换为
):

可能是在B单元格中输入公式后,您看到的是数字,而不是日期。在这种情况下,只需将日期格式应用于它们

关于条件含义的注释 您在评论中解释说,当条件为2015年9月30日时,
2015年9月10日
的结果不正确,因为截止日期为2015年8月31日。这似乎不必要复杂:在这种情况下,将截止日期置于条件中。把一个月后的日期作为“条件”是很奇怪的。如果仍然希望保持这种方式,则将公式更改为此(
>C2
替换为
>=日期(年(C2),月(C2),1)
):


你能更好地解释一下逻辑吗?“如果A1中的给定日期为1980年11月29日,其中一个条件为2016年6月30日,则该日期应为2014年11月29日”:我不知道这些日期之间的关系,也不知道前两个日期的结果如何。请解释。谢谢你的评论!当然,谢谢你的评论!当然,我会尽力解释我最好的。基本上,A1中的任何偶数年都将导致当前偶数年。对于例如,如果A1为1980年11月29日,且由于其为偶数年,则其在本年度的相应值应为2016年11月29日,但如果日期和月份在2016年6月30日之后,则相应值应为2014年11月29日。希望这个解释有帮助!有关更多示例和变量,请参阅表。表中的行
10-Sep-05
是否正确?根据逻辑,结果应该是
10-Sep-15
,而不是
10-Sep-13
。还是我遗漏了什么?谢谢你的详细解释。显然,我犯了一个错误。A2中的日期是否有特定格式?请告知这是一个分离问题(我在欧洲)。更换所有
与公式中的
。我相应地更新了我的答案。注:A2中的格式并不重要,只要是日期。我还添加了一段关于条件如何影响结果的内容。