excel 统计时间段

数据很多啊!有上万条!

14:07:11

14:14:57

14:27:32

14:28:42

17:31:19

17:33:10

17:37:14
7:33:16
8:05:35
我需要统计17:30分之后到早上8:00之前的数据条数!谢谢!
几种方法都试过,解决不了!问题研究发现是因为单元格里面的时间还有年月日!

如上图,第一步,设定M列的单元格格式是“时间”。具体做法右键单击,选择“设定单元格格式”,然后按照引导操作即可

 

第二步,N列输入公式,让该单元格等于M列对应单元格。但是设定该列单元格格式为数值格式,保留5位小数(如果保留位数太小的话,M列相差一分钟半分钟的,N列返回的数值是一样的)。这一步的作用是把时间转换成数值,因为只有数值才可以比较大小。转换完了会发现,8:00对应的数值是0.33333,17:30对应的数值是0.72917

 

第三步:随便找一个空白单元格,输入”=“,然后在EXCEL工具栏中选择公式---其它函数--统计--COUNTIF,点击COUNTIF,会弹出来一个对话框,在ruange那个地方拉选N列的所有单元格,在criterria那里输入<0.33333,然后确定,这个单元格会返回0:00至8:00之间的数据条数。公式显示是这样的     =COUNTIF(N1:N7,"<0.33333")

 

第四步:跟第三步一样的,但<0.33333改成>0.72917, 这次返回的是17:30至24:00之间的数据条数

 

第五步:三、四两个步骤算出来的数据相加,就是你想要的结果啦

 

希望能够帮助到你!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-03

OK,公式改了一下,如下图,粘贴数组公式,按“Ctrl+Shift+回车”结束输入:

=COUNTA(A:A)-SUM((TIMEVALUE(TEXT(A1:A20000,"h:mm:ss"))>=TIMEVALUE("08:00:00"))*((TIMEVALUE(TEXT(A1:A20000,"h:mm:ss"))<=TIMEVALUE("17:30:00")))*1)

如果公式中的A1:A20000不够用,请根据实际行数修改一下。

第2个回答  2014-09-03
这个条件公式还真不太好写,如果只要条数,不妨采用笨办法。

先按时间排序,再人工删除不符合条件的,剩下的就是符合的。
应该也花不了多少时间的。
嫌麻烦我来帮你好了。
第3个回答  2014-09-03

数据→筛选 

能看明白吧!


希望可以帮到你!

第4个回答  2014-09-03
如果用的是2007以上版本的,假设你的数据是在A列,统计是在B1,则在B1输入=COUNTIFS(A:A,">17:30",A:A,"<08:00")
第5个回答  2014-09-03
=SUMPRODUCT((MOD($A$2:$A$999,1)>=TIME(10,,))*(MOD($A$2:$A$999,1)<=TIME(10,30,)))
=SUMPRODUCT((MOD($A$2:$A$999,1)>=TIME(10,,))*(MOD($A$2:$A$999,1)<=TIME(10,30,))*($B$2:$B$999="home"))
希望对你能有所帮助。