Excel技术求助:汇总检验线21:00-21:59数据至Sheet1的C78单元格
解决方案
方法1:使用SUMPRODUCT跨表关联求和
针对你的需求,可通过SUMPRODUCT同时匹配资源组、资源归属、时间范围三个核心条件,直接汇总Sheet2中符合要求的数值。假设各列对应关系如下:
- Sheet1:资源组列=
A:A,资源列=B:B - Sheet2:资源列=
A:A,分钟级时间列=B:B,数值列(含13的列)=C:C
在Sheet1的C78单元格输入以下公式:
=SUMPRODUCT( --(Sheet1!A:A="INSPECTION LINE - N1 NIGHTS"), --(Sheet2!A:A=Sheet1!B:B), --(Sheet2!B:B>=DATE(2024,6,12)+TIME(21,0,0)), --(Sheet2!B:B<=DATE(2024,6,12)+TIME(21,59,59)), Sheet2!C:C )
如果Sheet2中符合条件的数值固定为13,可简化为统计符合条件的单元格数量再乘以13:
=13*SUMPRODUCT( --(Sheet1!A:A="INSPECTION LINE - N1 NIGHTS"), --(Sheet2!A:A=Sheet1!B:B), --(Sheet2!B:B>=DATE(2024,6,12)+TIME(21,0,0)), --(Sheet2!B:B<=DATE(2024,6,12)+TIME(21,59,59)) )
公式说明
--用于将布尔值转换为1/0,实现条件筛选DATE(2024,6,12)+TIME(21,0,0)生成精确的起始时间戳,避免文本格式时间的判断误差- 跨表关联Sheet1的资源组与Sheet2的资源,确保只汇总目标资源组下的数值
方法2:修正SUMIFS的使用逻辑
若偏好使用SUMIFS,需先在Sheet2中建立资源与资源组的关联:
- 在Sheet2新增一列(如D列),输入公式匹配资源对应的资源组:
下拉填充至所有数据行=VLOOKUP(Sheet2!A2, Sheet1!B:A, 2, FALSE) - 在Sheet1的C78单元格使用SUMIFS求和:
=SUMIFS( Sheet2!C:C, Sheet2!D:D, "INSPECTION LINE - N1 NIGHTS", Sheet2!B:B, ">="&DATE(2024,6,12)+TIME(21,0,0), Sheet2!B:B, "<="&DATE(2024,6,12)+TIME(21,59,59) )
关键注意事项
- 确保两张表的时间列均为日期时间格式(而非文本格式),否则时间范围判断会失效
- 建议将公式中的整列引用(如
A:A)替换为实际数据范围(如A2:A1000),提升计算性能 - 若Sheet1中存在一个资源对应多个资源组的情况,需先明确关联逻辑再调整公式
内容的提问来源于stack exchange,提问作者Alan Tingey
相关产品推荐
相关产品推荐

