解决date周期公式

我正在研究以下公式:

=IF(AND(A1="Semi",A2="Japan",MONTH($A$3)<4),DATE(YEAR($A$3),3,31),IF(AND(A1="Semi",A2="Japan",MONTH($A$3)>3),DATE(YEAR($A$3),9,30))) 

基本上我正在试图find一个问题,我有最好的公式。 在电子表格的单元格A3 ,我今天的date=TODAY() 。 那么我们假设今天的date是2015年1月1日。我想要的公式是:

  1. 如果今天的date在2015年3月31日之前,那么我想要公式给我2015年3月31日。
  2. 如果今天是2015年3月31日,那么我想要公式给我2015年9月30日。
  3. 但是,如果今天的date是2015年9月30日,那么我希望下个年度(即2016年3月31日)的3月31日给我公式。

我制定了满足要点1和2的公式,但是我的公式不能满足要点3。

我假设要求包括需要将单元格A1设置为“半”,将A2设置为“日本”。 为了简洁起见,如果适用于所有三种陈述的情况,那么可以将它们拖到外面的陈述中。

看起来你几乎是正确的,但尝试以稍微不同的方式来看索赔2:

  1. 如果今天的date是在2015年3月31日之后,2015年9月30日之前,那么我想要公式给我2015年9月30日。

您已经在if语句中处理了“2015年3月31日以后”的要求(如果是 3月31日以前 ,那么您将永远不会进入if语句的FALSE部分!)。 现在您只需要处理“2015年9月30日之前”的要求,您可以通过select一个月份小于10的date来完成。

第三个也是最后一个要求将出现在下一个if语句的FALSE部分。 如果不在2015年9月30日之前 ,则必须在2015年9月30日之后 。您可以简单地在年份中添加1,并为2016年3月31日创build新的date。

 =IF(AND(A1="Semi",A2="Japan"),IF(MONTH(A3)<4,DATE(YEAR(A3),3,31),IF(MONTH(A3)<10,DATE(YEAR(A3),9,30),DATE(YEAR(A3)+1,3,31))),"<Error>") 

EDATEfunction可以有条件地将您的会计date提前6个月。

 =IF(AND(A1="Semi", A2="Japan"), IF(MONTH($A$3)<4, DATE(YEAR($A$3), 3, 31), EDATE(DATE(YEAR($A$3), 9, 30), (MONTH($A$3)>9)*6)), "not Semi and Japan") 

可能需要添加一些年份比较。 现在的这个公式看起来像在明年1月份开始有麻烦了。