功能清理/替代方案

功能清理/替代方案

我在 A 列中以 [A1] 开头列出了日期,我需要匹配本周最近的星期二,如果不是,则匹配星期四,如果不是,则匹配下周星期二。我使用的函数:

最近星期二 [B1]=IF(A1+1-WEEKDAY(A1,3)<A1,(A1+1-WEEKDAY(A1,3)+7),A1+1-WEEKDAY(A1,3))

最近星期四 [C1]=IF(A1+3-WEEKDAY(A1,3)<A1,(A1+3-WEEKDAY(A1,3)+7),A1+3-WEEKDAY(A1,3))

现在,为了得到最近的星期二或星期四,我比较了 [A1] 与星期二和星期四之间的差异:

[D1]=IF(AND((B1-A1)<(C1-A1),(C1-A1)>(B1-A1)),B1,C1)

我很想用嵌套的“IF”函数替换 B1/C1,这会使我的公式变得臃肿,文件变得厚且慢,但我会删除电子表格中多人使用的额外的 B 和 C 列。

您能建议一下如何让它变得更清洁吗?

答案1

鉴于你在评论中澄清,为了找到

  • 当前或接下来的星期二或星期四,您可以使用:

    =A1+7-WEEKDAY(A1-3-2*(WEEKDAY(A1,13)<=2))
    

换句话说,

  • 如果日期是星期三或星期四,则返回下一个或当前的星期四
  • 否则,返回下一个或当前的星期二。

在此处输入图片描述

相关内容