我正在尝试根据日期获得给定季度的周数 我目前有这个公式
=1+(WEEKNUM(EDATE(Y4,-1)))-(WEEKNUM(DATE(YEAR(EDATE(Y4,-1)),
LOOKUP(MONTH(EDATE(Y4,-1)),{1,4,7,10}),1)))
但对于 1月,它应该给我1但是它给了我10.任何建议?
答案 0 :(得分:1)
您认为这个季度的开始和结束时如何运作?默认WEEKNUM
功能从每年1月1日的第1周开始,第2周从1月1日后的下一个星期日开始。
假设您的季度周数应该以相同的方式工作,即第1周开始于1月/ 4月/ 7月/ 10月1日,第2周开始于下周日,那实际上相当于计数周日从上个季度开始的6天。
您可以使用NETWORKDAYS.INTL
函数执行此操作,即使用以下公式:
=NETWORKDAYS.INTL(EOMONTH(Y4,MOD(1-MONTH(Y4),-3)-1)-5,Y4,"1111110")
将结果格式化为没有小数位的数字
NETWORKDAYS.INTL
及更高版本中提供了 Excel 2010
功能 - 对于旧版本的Excel,您可以使用以下公式获得相同的结果:
=INT((13-WEEKDAY(Y4)+Y4-EOMONTH(Y4,MOD(1-MONTH(Y4),-3)-1))/7)
答案 1 :(得分:0)
这是相当有趣的,因为它随着年份的变化而变化,并且随着一周的哪一天的变化是"开始"一周中的。因此,如果一个季度在星期六开始,并且星期从星期六开始,则整个星期是第1周。但是,如果它在星期日开始,则第1周仅为一天,第2周从星期日开始。
我们遇到的第一个问题是,哪一天?
ngOnInit
此外,我将打电话给每个季度的开头:
=DayCheck
接下来的问题是,本周的第一天是什么时候?我们可以通过工作日功能对此进行控制。为了保持简单,周日是本周的开始。
好的,那是我们的一天。接下来,它是什么季度?
Q1Start = Date(Year(DayCheck),1,1)
Q2Start = Date(Year(DayCheck),4,1)
Q3Start = Date(Year(DayCheck),7,1)
Q4Start = Date(Year(DayCheck),10,1)
这为Q1提供1,为Q2提供2等等。
现在是星期几?
`Quarter=ROUNDDOWN(MONTH(O16)/4,0)+1`
好的,现在,我们在哪一周?
=WEEKDAY(DayCheck,1)
我要用一种不太优雅的方式把它放在一起。我确信那里有更好的方法。
=WEEKNUM(DayCheck,1)
答案 2 :(得分:0)
试试这个:
=CHOOSE((MOD(WEEKNUM(Y4),13)=0)+1,WEEKNUM(Y4)-(ROUNDDOWN(WEEKNUM(Y4)/13,0)*13),13)
这将获得一个季度内给定日期的周数 我在我的一个应用程序中使用了这个,所以你也可以使用它。 HTH。
注意:如果您使用 Sunday 以外的第一天,请调整WEEKNUM
公式。
答案 3 :(得分:0)
(评论扩大)
当你在1月选择一个日期时,它会回到12月。查找数组中的12将得到10作为结果。或许不是EDATE,你应该使用EOMONTH(Y4,-1)+1,所以你要看当前月份的第一个计算
=1+(WEEKNUM(EOMONTH(Y4,-1)+1))-(WEEKNUM(DATE(YEAR(EOMONTH(Y4,-1)+1), LOOKUP(MONTH(EOMONTH(Y4,-1)+1),{1,4,7,10}),1)))
答案 4 :(得分:0)
可以试试这个,因为我把它作为 2 个公式的组合 =WEEKNUM(A1,1)-(INT((MONTH(A1)-1)/3)*13)
第二部分 - INT((MONTH(A1)-1)/3) 为我们提供上一季度的季度数,然后乘以 13 周/季度,我们得出上一季度过去了多少周当前季度。
第一部分 - "WEEKNUM(A1,1)" 为我们提供一年中当前周的周数。
因此,通过从年份的当前周数中减去前几个季度的所有前几周,我们得到当前季度的当前周数。