如何基于QTY累计和智能查找对应列的时间值
问题描述
- Staff-A(A列第2行)于12:00(C列第2行)填充50 QTY(B列第2行),需统计晚于填充时间的消耗(G列),当累计消耗达50时,返回对应H列的12:30(H列第8行),需忽略早于12:00的11:00的5 QTY;
- Staff-B(A列第3行)于12:15填充20 QTY(B列第3行),累计晚于12:15的消耗至20时,返回H列第6行的12:20。
当前使用VLOOKUP仅能返回首个匹配值,无法实现「累计求和至填充量后返回对应时间」的需求。
解决方案(Google Sheets 公式)
在需要返回结果的单元格中,使用以下通用公式(公式可下拉复用至对应行):
=INDEX(H:H, MATCH(TRUE, SCAN(0, FILTER(G:G, H:H > C2), LAMBDA(a,b, a+b)) >= B2, 0) + ROW(FILTER(G:G, H:H > C2)) - 1)
公式拆解
FILTER(G:G, H:H > C2):筛选出所有**晚于当前行填充时间(C列)**的消耗数据,自动排除早于填充时间的无效记录;SCAN(0, ..., LAMBDA(a,b, a+b)):对筛选后的消耗值进行累计求和,生成逐行递增的累计值序列;MATCH(TRUE, ... >= B2, 0):定位到第一个累计值大于等于当前行填充QTY(B列)的位置;INDEX(H:H, ...):根据定位到的位置,返回对应的消耗时间(H列)。
场景验证
- 对于Staff-A(C2=12:00,B2=50):筛选出H列晚于12:00的消耗记录,累计求和至H8时达到50,返回H8的12:30;
- 对于Staff-B(C3=12:15,B3=20):筛选出H列晚于12:15的消耗记录,累计求和至H6时达到20,返回H6的12:20。
内容的提问来源于stack exchange,提问作者Jayson Chabot
相关产品推荐
相关产品推荐

