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)
我正在尝试制定一个公式来计算一周内的周数,但要符合特定条件。一周总是从星期一开始。但是如果那个星期的星期四在下个月,那么那个周数就是下个月的一部分。
现在我有以下公式:
=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)