单元格值随月份变化

单元格值随月份变化

当我在单元格中输入月份时,我尝试从第一天到该月的最后一天获取一周中的某些日期,例如:

如果单元格“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"))
    

注意: 这计算星期日和星期四,其中SunThu是可编辑的。

  • 公式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))

相关内容