Excel:使用条件的月份内的周数

我试图用一个表格来计算一周内的星期数,但有一定的标准。 这周总是从星期一开始。 但是,如果那个星期四是在下个月,那么那个星期是下个月的一部分。

在这里输入图像说明 [在这里input图片描述] [2]

现在我有以下的公式:

=INTEGER((6+DAY(A4+1-WEEKDAY(A4-1)))/7) where A4 is the date. 

这已经计算了一个月内的星期数,但是没有星期四的标准。 另外一个额外的标准是周数应该从周一上午6点开始,而不是午夜。 但是我可以用一个额外的列来解决这个问题。

提前致谢!

考虑从上周的数字中计算出周数:

  • 如果是星期一那么
    • 如果下个星期四进入下个月,重置为1
    • 否则增加1
  • 否则使用相同的值

所以从E4开始

 =IF(WEEKDAY(A5)=2,IF(MONTH(A5+3)>MONTH(A5-4),1,E4+1),E4) 

inputE5并复制下来。

在这里输入图像说明

编辑

上面的工作2017年,但需要稍微改变,2018年及以后的工作,因为月份从12年减less到1年跨界:

 =IF(WEEKDAY(A5)=2,IF(MONTH(A5+3)<>MONTH(A5-4),1,E4+1),E4) 

我不能上传工作簿,但这里是一个解决scheme:

第2行是标题第3行是空的B4向下是date(2017年1月1日截至2017年12月31日)

C4 =WEEKDAY(B4,2)

D4 =VLOOKUP($C4,$L$3:$M$9,2,0)

E4 =MONTH(B4)

F4到J4是空的

F5 =IF(C5=1,F4+1,F4)

G5 =IF(C5=4,11,0)

H5 =IF(MAX(E5:E11)-MIN(E5:E11)<>0,22,0)

I5 =IF(AND(C5=4,SUM(G5:G11)+SUM(H5:H11)>22),I4+1,0)

J5 =IF(H6-H5<0,1,IF(H6=22,J5,IF(OR(C6=1,I6<>0),J5+1,J5)))

L3到M9是vlookups

 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday 

这对你有用吗?

根据我的经验,大部分的周数问题都可以用你的原始公式的一些变化来回答 – 在这种情况下,这个版本应该满足周一开始周四确定的月份

=INT((6+DAY(B4+4-WEEKDAY(B4-1)))/7)

这适用于A4的一个date,但假设你有一个A4的date/时间 ,星期一到星期一的06:00才能开始,那么你可以调整如下:

=INT((6+DAY(B4+3.75-WEEKDAY(B4-1.25)))/7)

在这里输入图像说明