Excel : 符合条件的月份内的周数

Excel : Weeknumber within month with criteria

我正在尝试制定一个公式来计算一周内的周数,但要符合特定条件。一周总是从星期一开始。但是如果那个星期的星期四在下个月,那么那个周数就是下个月的一部分。

[在此处输入图片描述][2]

现在我有以下公式:

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

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

提前致谢!

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

第 2 行是 headers 第 3 行为空 B4往下是日期(01/01/2017 到 31/12/2017)

C4=WEEKDAY(B4,2)

D4=VLOOKUP($C4,$L:$M,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

你觉得合适吗?

考虑根据前一周的数字算出周数:

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

所以从 E4 中的 1 开始

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

进入E5,抄下来。

编辑

以上适用于 2017 年,但需要稍作改动才能适用于 2018 年及以后,因为月份从 12 减少到 1:

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

根据我的经验,大多数周数问题都可以用原始公式的一些变体来回答——在这种情况下,这个版本应该迎合周一的一周,从周四开始确定月份

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

这适用于 A4 中的日期,但假设你在 A4 中有一个 date/time,并且一周要到星期一 06:00 才开始,那么您可以按如下方式进行调整:

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