Excel:具有条件的月份内的周数

时间:2017-08-24 08:05:33

标签: excel excel-formula week-number

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

enter image description here [在此处输入图片说明] [2]

现在我有以下公式:

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

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

提前致谢!

3 个答案:

答案 0 :(得分:1)

考虑计算上周数字的周数:

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

首先从E4中的1开始

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

进入E5并复制下来。

enter image description here

修改

2017年上述工作有效,但需要稍微改变才能在2018年及之后工作,因为月份从12年减少到1年:

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

答案 1 :(得分:0)

我无法上传工作簿,但这是一个解决方案:

第2行是标题 第3行是空的 B4下降是日期(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

这对你有用吗?

答案 2 :(得分:0)

根据我的经验,大部分周数问题都可以通过原始公式的某些变化来回答 - 在这种情况下,此版本应该适应周一开始,周四确定月份

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

这适用于A4中的日期,但假设您在A4中有日期/时间并且星期一开始直到06:00,那么您可以将其调整为如下:

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

enter image description here