基于其他日期在 Excel 中进行日期计算

基于其他日期在 Excel 中进行日期计算
          =TODAY    
date A    date B    date C

我需要一个可以计算日期 B 的公式。
例如,如果日期 A 和 =TODAY 之间已经过去一年以上,并且日期 C 为空,则日期 B 将与 =TODAY 相同,否则日期将与日期 A 加一年相同。

我成功地创建了这样的公式:

=IF(AND(DATEDIF(date A,$date $B,"Y") >= 1, ISBLANK(date C)), TODAY(), DATE(YEAR(date A)+1,MONTH(date A),DAY(date A))) 

但当日期 A 和今天之间的差异超过一年时,这似乎不起作用。

答案1

注意:我在英国,所以我的答案使用 dd/mm/yyyy 格式的日期

假设:
date a在单元格中A1
date b在单元格中B1,并且
date c在单元格中C1

然后假设您将其输入31/02/2015单元格A1并将公式输入=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,ISBLANK(C1)),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))到对我有用的单元格中。A2

正如@Máté Juhász 在评论中所说,当单元格中有内容时就会出现问题C1。 如果是这种情况,它会将 A1 中的日期增加 1 年,使其成为 31/02/2016,而不是今天的日期 02/09/2016。

如果您在单元格中输入空格,单元格C1可能会显示为空白,但 Excel 会将空格视为数据。因此,为了安全起见,如果您想通过将空格作为空白来检查单元格是否在人眼中显示为空白,则需要将逻辑测试更改为使=OR(ISBLANK(C1),C1=" ")单元格中的最终公式B1=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(ISBLANK(C1),C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))

的替代方法是使用注释中建议的替代方法,即在单元格中制作替代的最终公式=OR(ISBLANK(C1),C1=" "),除了将公式长度减少 6 个字符外,没有其他功能差异=OR(C1="",C1=" ")B1=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(C1="",C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))

相关内容