ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > 函数与公式 > 统计某月机器使用时间(TEXT设置数组上下限的应用)

统计某月机器使用时间(TEXT设置数组上下限的应用)

作者:绿色风 分类: 时间:2022-08-17 浏览:176
楼主
gouweicao78
如图:

 
表中,B3:E12为某机器开启和关闭的时间记录
请在I2单元格根据G2、H2的年、月份,统计出该月机器使用时间

答案:
  1. =SUM(TEXT(IF({1,0},B3:B12+C3:C12,D3:D12+E3:E12),"[>"&DATE(G2,H2+1,1)&"]"""&DATE(G2,H2+1,1)&""";[<"&DATE(G2,H2,1)&"]"""&DATE(G2,H2,1)&""";G/通用格式")*{-1,1})*24
附件:
统计某月运行时段.rar
2楼
gouweicao78
公式:
  1. =SUM(TEXT(IF({1,0},B3:B12+C3:C12,D3:D12+E3:E12),"[>"&DATE(G2,H2+1,1)&"]"""&DATE(G2,H2+1,1)&""";[<"&DATE(G2,H2,1)&"]"""&DATE(G2,H2,1)&""";G/通用格式")*{-1,1})*24

思路解析:
1、日期与时间结合:
由于开启和结束都是日期、时间分离,需要相加后进行处理。
例如:B3:B12+C3:C12——取得机器的开启时间

2、构建两列数组:
IF({1,0},B3:B12+C3:C12,D3:D12+E3:E12)——将相加后的开启时间和结束时间构建成2列的数组

3、TEXT设置数组的上下限
请参考:
  1. =TEXT(A1,"[>"&上限&"]"&CHAR(34)&上限&CHAR(34)&";[<"&下限&"]"&CHAR(34)&下限&CHAR(34)&";G/通用格式")

此处,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楼
虫儿飞
学习了!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap