是否有根据条件使用 Google sheet 中的公式计算即将到来的日期的公式?

Is there a formula for upcoming date using formula in Google sheet based on condition?

我有一个 google sheet,我需要根据 A 列中设置的开始日期获取下一个即将到来的日期

非常感谢任何指点?我无法展示这些努力,因为我对使用 Google sheets

的这种重复完全陌生

https://docs.google.com/spreadsheets/d/1g_UNg4MjDy3gFufpjZtMRkbBz80K3scQdZOaiAnZi7I/edit#gid=0

此行为(从今天开始的下一个日期,包括今天)可以通过以下公式手动实现:

={
  "Next date from today";
  ARRAYFORMULA(
    IFS(
      A2:A >= TODAY(),
        A2:A,
      B2:B = "Daily",
        TODAY() + MOD(TODAY() - A2:A, C2:C),
      B2:B = "Weekly",
        TODAY() + MOD(TODAY() - A2:A, 7 * C2:C),
      B2:B = "Monthly",
        EDATE(A2:A, ROUNDUP((12 * (YEAR(TODAY()) - YEAR(A2:A)) + (MONTH(TODAY()) - MONTH(A2:A)) - IF(DAY(TODAY()) < DAY(A2:A), 1, 0)) / C2:C, 0) * C2:C),
      True,
        ""
    )
  )
}

对于其他选项(如 "every 2nd monday of the month" 等),应在该 IFS 部分中实施其他选项。

如果您对需要从开始日期(屏幕截图中的 F:F 列)开始的下一个日期的小案例感兴趣,那么公式会简单得多:

={
  "Next date";
  ARRAYFORMULA(
    IFS(
      B2:B = "Daily",
        A2:A + C2:C,
      B2:B = "Weekly",
        A2:A + 7 * C2:C,
      B2:B = "Monthly",
        EDATE(A2:A, C2:C),
      True,
        ""
    )
  )
}

同样,对于其他选项,您需要将相应的部分添加到 IFS

您可以使用 IFS 来检查 Frequency,并且:

  • 如果 Daily,将 Count 值添加到开始日期。
  • 如果 Weekly,请将 Count 值乘以 7。
  • 如果Monthly,因为并非所有月份的持续时间都相同,检索YEARMONTHDAY索引,将Count添加到MONTH index, and set a new DATE, EDIT: or as suggested by kishkin, use EDATE.

可能是这样的:

=ARRAYFORMULA(IFNA(IFS(
    B2:B = "Daily", A2:A + C2:C,
    B2:B = "Weekly", A2:A + 7 * C2:C,
    B2:B = "Monthly", EDATE(A2:A,C2:C)
)))