一周的季数

时间:2017-12-26 21:07:58

标签: excel excel-formula

我正在尝试根据日期获得给定季度的周数 我目前有这个公式

=1+(WEEKNUM(EDATE(Y4,-1)))-(WEEKNUM(DATE(YEAR(EDATE(Y4,-1)), 
LOOKUP(MONTH(EDATE(Y4,-1)),{1,4,7,10}),1)))

但对于 1月,它应该给我1但是它给了我10.任何建议?

5 个答案:

答案 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)

  1. 第二部分 - INT((MONTH(A1)-1)/3) 为我们提供上一季度的季度数,然后乘以 13 周/季度,我们得出上一季度过去了多少周当前季度。

  2. 第一部分 - "WEEKNUM(A1,1)" 为我们提供一年中当前周的周数。

因此,通过从年份的当前周数中减去前几个季度的所有前几周,我们得到当前季度的当前周数。