楼主 gouweicao78 |
如图: 表中,B3:E12为某机器开启和关闭的时间记录 请在I2单元格根据G2、H2的年、月份,统计出该月机器使用时间 答案:
统计某月运行时段.rar |
2楼 gouweicao78 |
公式:
思路解析: 1、日期与时间结合: 由于开启和结束都是日期、时间分离,需要相加后进行处理。 例如:B3:B12+C3:C12——取得机器的开启时间 2、构建两列数组: IF({1,0},B3:B12+C3:C12,D3:D12+E3:E12)——将相加后的开启时间和结束时间构建成2列的数组 3、TEXT设置数组的上下限 请参考:
此处,char(34)即英文双引号,也可以直接使用"",不过需要注意成对出现。 G2选择年份、H2选择了月份之后,比如2009年8月,则需要计算的是: 起始时间小于2009-8-1的,按2009-8-1开始算;超过2009-9-1的,按2009-9-1算;在此范围的按原值算。 结束时间也是如此。 通过TEXT计算后,起始时间和结束时间将统一到8月份,比如: 第1组数组是:7-28 14:33:44~7-29 6:46:44,都小于下限,返回下限表示为2009-8-1~2009-8-1,因此该时段的机器使用时间是0; 第2组数组:7-30 20:32:06~8-2 9:27:17,经过TEXT计算,返回:2009-8-1 0:00~2009-8-2 9:27:17,因此该时段就把7月份的时间去除了。 同理,时间跨8、9月份的以及都超过9月份的,也是如此处理。 4、利用SUM({X,Y}*{-1,1})计算Y-X,对数组相减之后的差额求和。 5、SUM得到的是日期,因此*24换算为小时数。 |
3楼 yuezc |
虽然看不太明白,但还是感谢版主分享。 |
4楼 网名多余 |
虽然看不太明白,但还是感谢版主分享。 |
5楼 传递 |
比较有难度 |
6楼 wise |
谢谢分享 |
7楼 海洋之星 |
谢谢分享 |
8楼 rongjun |
学习了! |
9楼 eliane_lei |
学习了 |
10楼 lrlxxqxa |
学习text用法。 |
11楼 虫儿飞 |
学习了! |