Excel formula 根据给定日期的频率获取下一个到期日

Excel formula 根据给定日期的频率获取下一个到期日,excel-formula,google-sheets-formula,Excel Formula,Google Sheets Formula,我有一张表格,我需要根据月份的频率和日期获得下一个预期到期日 start date end date date of month frequency (months) 2020-06-15 2050-01-05 15 6 因此,预计6月15日和12月15日,每个日期都是如此 我试过了 =IF((MOD(MONTH(E17),D17)=MOD(MONTH(TODAY()),D17))*(DAY(E17)>=DAY(

我有一张表格,我需要根据月份的频率和日期获得下一个预期到期日

start date      end date        date of month   frequency (months)
2020-06-15      2050-01-05      15              6
因此,预计6月15日和12月15日,每个日期都是如此

我试过了

=IF((MOD(MONTH(E17),D17)=MOD(MONTH(TODAY()),D17))*(DAY(E17)>=DAY(TODAY()))*(E17>=TODAY()),(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(E17))),TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(E17)),"mmm"))

我更进一步,定义了一份截止到年底的所有付款清单

A2-开始日期 B2-结束日期 F2-预计到期日 D2-频率

首先,我定义首次付款(G2):

然后我检查应该再支付多少(H2)

最后,我定义了下一次付款(I2:I):


我更进一步,定义了一份截止到年底的所有付款清单

A2-开始日期 B2-结束日期 F2-预计到期日 D2-频率

首先,我定义首次付款(G2):

然后我检查应该再支付多少(H2)

最后,我定义了下一次付款(I2:I):

请尝试:

=QUERY(ARRAYFORMULA(EOMONTH(
if(true,EOMONTH(A2,D2-1)+C2,         "first pay date"),
SEQUENCE(
if(true,int(DATEDIF(A2,B2,"M")/D2),  "number of payments")
,1,-1,D2))+C2),"select Col1 where Col1 >= date '"&text(today(),"yyy-mm-dd")&"' limit 1")
答案是基于之前的mede

额外逻辑:
query
允许您从日期序列中选择最近的日期。

请尝试:

=QUERY(ARRAYFORMULA(EOMONTH(
if(true,EOMONTH(A2,D2-1)+C2,         "first pay date"),
SEQUENCE(
if(true,int(DATEDIF(A2,B2,"M")/D2),  "number of payments")
,1,-1,D2))+C2),"select Col1 where Col1 >= date '"&text(today(),"yyy-mm-dd")&"' limit 1")
答案是基于之前的mede


额外逻辑:
query
允许您从日期序列中选择最近的日期。

很好的解释。我不知道
edate
函数。谢谢,但我不需要结果数组。我只需要即将到来的日期,直到系统日期到达。很好的解释。我不知道
edate
函数。谢谢,但我不需要结果数组。我只需要即将到来的日期,直到系统日期到达。效果很好!。谢谢MaxWorks喜欢魅力!。谢谢你,麦克斯
=ArrayFormula(edate(G2,sequence(H2+
                                        if(day(F2)>day(B2),-1,0)
                                     ,1,D2,D2))) 
=QUERY(ARRAYFORMULA(EOMONTH(
if(true,EOMONTH(A2,D2-1)+C2,         "first pay date"),
SEQUENCE(
if(true,int(DATEDIF(A2,B2,"M")/D2),  "number of payments")
,1,-1,D2))+C2),"select Col1 where Col1 >= date '"&text(today(),"yyy-mm-dd")&"' limit 1")