如下数据源
要求统计各区分关于时间类的数据,如下图:
2至5列数据,如下设置公式并向下拖动:
B列【接收数】:因为时间日期类数据在Excel中是一个数值,因此可以利用Count函数获取包含数值的个数
- =COUNT(陆家嘴!A:A)
或:为了便于拖动可以使用Indirect,此函数立即对引用进行计算,并显示其内容。故用Indirect函数来引用工作表
- =COUNT(INDIRECT("'"&A2&"'!a:a"))
C列【大于2.5小时的个数】:此处利用Countif函数统计某个区域求满足条件的单元格个数,对于工作表的引用依然使用Indirect函数。
- =COUNTIF(INDIRECT("'"&A2&"'!c:c"),">2:30")
D列【2.5小时及时率】:此处数值为百分比,因此使用Text函数来对数据指定格式,此处定义为百分比并保留小数点后两位
- =TEXT(1-C2/B2,"0.00%")
E列【大于24小时个数】:此处同C列,利用Countif函数统计个数
- =COUNTIF(INDIRECT("'"&A2&"'!c:c"),">24:00")
F列【24小时及时率】:同D列,利用Text函数指定格式
- =TEXT(1-E2/B2,"0.00%")
G列【平均延迟】:Text函数指定数据格式显示多少小时多少分钟,加“[]”的作用是让超过24小时的数据继续累加。此处Averageif函数统计某个区域满足条件的单元格数据的平均值
- =TEXT(AVERAGEIF(INDIRECT("'"&A2&"'!c:c"),"<>"&""),"[h]:mm")
在【汇总】行中,主要要说明一下G6单元格的整体【平均延迟】,先用sum函数对每个区分的整体延迟时间求和,然后累加再除接收个数
- =TEXT((SUM(INDIRECT("'"&A2&"'!C:C"))+SUM(INDIRECT("'"&A3&"'!C:C"))+SUM(INDIRECT("'"&A4&"'!C:C"))+SUM(INDIRECT("'"&A5&"'!C:C")))/B6,"[h]:mm")
最终得到汇总表
参考附件:http://sdrv.ms/Ml6uoq
本文转自kirin 51CTO博客,原文链接:http://blog.51cto.com/kirin/959785 ,如需转载请自行联系原作者