您可以尝试以下操作。这是一个数组解决方案,因此不需要向下展开公式:
=LET(lk, "average", thAct, A10:A11, thValue, B10:B11,
th, XLOOKUP(lk, thAct,thValue),r_1,D2:D6, r_2, G2:G6,
MAP(r_1,r_2, LAMBDA(x,y,
IF(AND(ISNUMBER(x), ISNUMBER(y), y-x <= th), AVERAGE(x,y),""))))
或者不定义名称:
=LET(th, XLOOKUP("average", A10:A11,B10:B11),
MAP(D2:D6,G2:G6, LAMBDA(x,y,
IF(AND(ISNUMBER(x), ISNUMBER(y), y-x <= th), AVERAGE(x,y),""))))
您可以参考相应的图纸,根据您的具体问题调整范围。我没有使用
差别
列,因为它可以动态计算。仅当所有条件
AND
满足调用(两个速率都是数字,并且速率差在定义的阈值内),否则返回一个空字符串。而不是使用
以及
可以将条件相乘,如下所示:
ISNUMBER(x) * ISNUMBER(y) * (y-x <= th)
以下是输出: