永发信息网

excel如何根据一系列日期数据(yyyymmdd)来统计当年的第几周的个数?

答案:5  悬赏:80  手机版
解决时间 2021-11-22 05:25
  • 提问者网友:星軌
  • 2021-11-21 23:12
excel如何根据一系列日期数据(yyyymmdd)来统计当年的第几周的个数?
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-11-21 23:56
要用到数组公式,不需要辅助列,不需要任何其他操作,只需要在B1单元格输入公式如下:
=SUM(IF(INT((A:A-"2013-1-1"+WEEKDAY("2013-1-1")+1)/7)+1=ROW(A1),1,0))
       注意:这是个数组公式,要按CTRL+SHIFT+ENTER结束编辑(如果操作成功,则单击B1单元格看到的公式两边是有{}大括号的)。
       然后把这个公式复制下拉52格就行,对应的分别就是第1周至第52周的数据。另外,为了提高计算的速度,可以把公式里的A:A换成你有数据的范围(比如$A$1:$A$100,只有100行数据)


假设条件:
    每周是以星期天为第1天;
    你所说的2013年的第一周是指2013年1月1日(星期四)至2013年1月4日(星期六)
如果假设条件不符合你的要求,则公式需要稍做改动。

追问这个公式我看不懂,能解释每段函数对应的意思吗?(假设条件是星期天为第一天,可如果以星期一为第一天,怎么整哦?)因为不懂意思,所以不知道改;

PS:

按照月来统计1~12月的公式是这样的:
=SUMPRODUCT((YEAR(nouvelle!Y$7:Y$41)=2012)*(MONTH(nouvelle!Y$7:Y$41)=1))
,我也不懂这个函数;追答刚发现我那个公式写错了,应该是:
=SUM(IF(INT((A:A-"2013-1-1"+WEEKDAY("2013-1-1")-1)/7)+1=ROW(A1),1,0))
说明一下我那个公式的思路吧:
    A:A-"2013-1-1“是得到两个日期之间的天数差;
    WEEKDAY("2013-1-1")是求2013年1月1日对应的星期几,返回值是整数,其中1对应星期日,2对应星期一,以此类推。例如:2013-1-1对应的是星期二,则WEKDAY("2013-1-1")返回的是3;
    INT((A:A-"2013-1-1")+WEEKDAY("2013-1-1")+1)/7的意思是求A行各列日期对应的是第几周,因为天数差从2013年1月1日起是0开始的,如果1月1日是周二的话,则1月6日(天数差为5)就是周日,则是下一周了,即天数差为0至4为第1周,5至11为第2周,为了计算方便,在些基础上加2(WEEKDAY("2013-1-1")-1)即变成:2至6为第1周,7至13为第2周。这样一来用INT取这个值除以7的整数部分即可得到是当年的哪一周了;
    ROW(A1)在往下复制的时候会变成ROW(A2)、ROW(A3),相当于第一行是1,第二行是2……以此类推;
    然后用IF判断,当A列的数据对应的是第1周时,返回1,否则返回0,然后再用SUM求这个数组的和,这个和也就是第1周的数据数。
如果以星期一为第一天的话,公式改为:

=SUM(IF(INT((A:A-"2013-1-1"+WEEKDAY("2013-1-1")-2)/7)+1=ROW(A1),1,0))
追问怎么还是不行呢?郁闷了。。。追答你能把你的文件发给我看看吗?或许我的文件有什么细节和你的不一样。
全部回答
  • 1楼网友:深街酒徒
  • 2021-11-22 03:39
使用自定义函数
  • 2楼网友:动情书生
  • 2021-11-22 02:42
我想的办法需加一个辅助列,在C1列输入=WEEKNUM(A1,2)后回车,下拉计算,再在B1输入=COUNTIFS(A:A,"<>"&"",C:C,"="&ROW(A1))后回车,下拉到52行,得到所需结果
  • 3楼网友:佘樂
  • 2021-11-22 01:11
这个比较麻烦点
setp1.首先加入一行计算这些日期是那一周,一般Excel有织带函数weeknum(e12,1)假设日期在e12单元格,如果没有自带weeknum函数就比较麻烦点,要自己写函数,把下面的函数抄进去也可以=IF(E12,INT((E12-DATE(YEAR(E12),1,0)+WEEKDAY(DATE(YEAR(E12),1,0),2)+7-WEEKDAY(E12,2))/7),""),一直往下拉,就可以了
step2,统计周函数
可以用countif函数,把1到54分别写出来,用countif函数统计就可以了,
或者数据图示表一下就出来了,
  • 4楼网友:由着我着迷
  • 2021-11-22 00:51
间接方法如下
在B1中输入或复制粘贴此公式
=WEEKNUM(A1,2)
下拉填充或双击B1右下角的填充柄

在C1中输入或复制粘贴此公式
=COUNTIF(B:B,ROW(A1))
下拉填充共52或53行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯