excel - “第一个星期一”公式的Excel变体
问题描述
编辑:
当我第一次发布这个问题时,我要求一个公式来解决一个条件,但后来意识到它实际上有两个条件。
给定一个特定的日期:
返回该月的第一个星期一,实际上可能是上个月的最后一个星期一。(当实际的第一个星期一落在 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
使用一周开始的选项是在Monday。 - 如果是这种情况,则在公式中
A1
替换为。EDATE(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))
推荐阅读
- python - 使用 IBM Watson Visual Recognition 创建分类器时引发 503 内部服务器错误
- node.js - Google oAUTH2 id_token 已过期
- sql - sql脚本到excel。从第四排开始
- java - 后端的颤振请求正在打印编码符号
- javascript - 如何使用 Composition API 在 Vue.js 中进行过滤?
- ios - 如果 id 相同,则将项目分组在同一对象下
- dataweave - 有没有办法将 XML 输入中的内容“复制并粘贴”到 DataWeave 中的 JSON 输出?
- python - 我不断收到 base64 和令牌错误这是什么意思?
- r - 将字符串转换为日期但得到一个奇怪的错误代码
- gwt - 将 java 升级到 java11 后编译 GWT 时遇到问题