当我在单元格中输入月份时,我尝试从第一天到该月的最后一天获取一周中的某些日期,例如:
如果单元格“I6”包含“三月”或任何月份:
" MARCH "
然后:
- 单元格“F10”=1-Mar太阳(每月第一个星期日)
- 单元格“F11”= 5-Mar 表示 -Thur(每月第一个星期四)
- 单元格“F12”= 3 月 8 日 -太阳(每月第二个星期日等等)
- 单元格“F13”=12-Mar 表示 -Thur
这可能吗?我查看了不同的网站,但没有找到,非常感谢。
答案1
你也可以使用这个:
怎么运行的:
- 在单元格中
K23
,输入每月的第一天(就像我使用的一样02/01/2020
,格式为MM/DD/YYYY
)。 - 应用于
MMM YY
单元格。 - 单元格中的公式
K25
:
=K$23+MOD(7-WEEKDAY(K$23,2),7)
- 接下来,单元格中的公式
K26
:
=K$23+MOD(4-WEEKDAY(K$23,2),7)
注意:在上面的公式中7
,&4
代表星期日和星期四,您可以根据需要进行编辑。
单元格中的最终公式
K27
并填写:=IFERROR(IF(AND(MONTH(K26)=MONTH(K$23),COUNT(J$25:J25)=7),"",K25+7),"")
现在在单元格中输入此公式
J25
并向下填充。
=IF(ISBLANK(K25),"",K25)
編輯:
OP 提出了一个很好的观点,即如何管理约会,如果年代星期日 &电视周四超过 8 (例如,5 月和 8 月,周日是 5 点,周四是 4 点)。
在单元格中输入此公式
L25
:=SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Sun"))+SUMPRODUCT(N(TEXT(ROW(INDIRECT(K25&":"&EOMONTH(K25,0))),"ddd")="Thu"))
注意: 这计算星期日和星期四,其中Sun
和Thu
是可编辑的。
- 公式
K27
:
=K$25+MOD(7-WEEKDAY(K$25,2),7)
- 单元格中的公式
k28
:
=K$25+MOD(4-WEEKDAY(K$25,2),7)
在单元格中输入公式
K29
:=IFERROR(IF(AND(MONTH(K28)=MONTH(K$25),COUNT(J$27:J27)>=(L$25-1)),"",K27+7),"")
注意:
K27
在单元格&中使用 MONTH 检查和 ROW COUNT 以及公式K29
,限制 Excel 仅生成所有星期日和星期四的日期。- 现在根据需要继续在单元格中
K23
或中更改日期和年份。K25
- 根据需要调整公式中的单元格引用。
答案2
因此你可以将这个问题分解成两部分:
条件格式
你要:
cell "F10" = 1-Mar for- Sun (first Sunday of the month)
基于A6
包含MARCH
因此,您可以在单元格 F10 中放置
=IFERROR(IF(FIND("MARCH",A6)<>0,"contains March","Does not contain march","")
=Find("MARCH",A6)
如果找不到“MARCH”,就会出错,这就是我们使用的原因=IFERROR()
。如果没有错误,则意味着已成功找到,然后应用您想要的逻辑。
每月第一个星期日
为了找到一个月的第一个星期日,您可以使用以下公式:
'=(A4+CHOOSE(WEEKDAY(A4,1),7,6,5,4,3,2,1))'
在我的情况下,A4 是它引用的日期,那么它将向前查找,即下一个星期日。如果您将此方法代入第一个方法,您应该能够得到您想要的结果。
至于单元格 A11、A12、A13,您可以遵循完全相同的方法。
答案3
尝试:
F10: =DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1)
F11: =DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5)
F12: =F10+7
选择F12
并填写所需内容
G10: =F10
自定义格式G10
:"dddd"
选择G10
并填写所需内容
笔记:在某些月份,第一个星期四会在第一个星期日之前。如果您希望从第一个星期四或第一个星期日中较早的日期开始,然后继续按顺序进行,请使用以下公式:
F10:=MIN(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1),
DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5))
F11: =MAX(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-1),
DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))+7-WEEKDAY(DATEVALUE("1/"&I6 & "/" & YEAR(TODAY()))-5))