"First Monday"公式的Excel变体

标签 excel excel-formula

编辑:

当我第一次发布这个问题时,我要求一个公式来解决一个条件,但后来意识到它实际上有两个条件。

给定一个特定的日期:

  • 返回该月的第一个星期一,实际上可能是上个月的最后一个星期一。 (当实际的第一个星期一落在 7 号时会发生这种情况。)
  • 如果给定日期在该月的第一个星期一之前(例如 8/1/19,这是一个星期三),则返回上个月的第一个星期一(在本例中为 7/1/19)。

  • 罗恩公式:
    =A1-DAY(A1)+7-WEEKDAY(A1-DAY(A1)-2)
    

    ...符合第一个条件,它简短而优雅。也许它可以调整以适应第二个。

    最佳答案

    换个角度看问题。这似乎有效:

    =A1-DAY(A1)+7-WEEKDAY(A1-DAY(A1)-2)
    

    它在本月 7 日之前的星期一返回。

    编辑

    我必须假设您的第二个条件优先于第一个条件,否则它永远不会适用。

    既然如此
  • 使用 IF测试给定 DAY 的函数是 小于 给定的WEEKDAY使用一周开始的选项 星期一 .
  • 如果是这种情况,则替换 A1EDATE(A1,-1)在公式。

  • =IF(DAY(A1)<WEEKDAY(A1,2),EDATE(A1,-1)-DAY(EDATE(A1,-1))+7-WEEKDAY(EDATE(A1,-1)-DAY(EDATE(A1,-1))-2),A1-DAY(A1)+7-WEEKDAY(A1-DAY(A1)-2))
    

    关于 "First Monday"公式的Excel变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879745/

    相关文章:

    arrays - Excel的INDEX函数可以返回数组吗?

    excel - 结合修剪和 if 公式

    r - R 中的 .jnew 和 j.check 中的错误中的 write.xlsx 错误

    excel - 如何解决 VBA 错误 "Unable to get the selected property of the range class "

    python - 如何在 Django 1.7 中导出到 excel 日期时间

    excel - Excel 中的二次和三次回归

    excel - 将填充的列复制到同一行另一列中的空字段

    excel - 列表中的五个随机项目放入单个单元格中,用逗号分隔

    Excel 公式 IF 单元格编号为 'lower' 比 X、 'in between' X 和 Y 或 'higher' Y 则等于 A、B、C

    excel - sumproduct excel 多个表