我想根据一些键对一组值进行简单的计算(比如加法),如下所示:
Col A Col B Col C Col D Col E
Row 1 **Key** **Value** **Key Input** **VLOOKUP** **Array**
Row 2 x 10 x 10 10
Row 3 y 20 0 0
Row 4 z 30 y 20 20
D 列和 E 列包含 C 列中关键输入的值:
D 列使用 VLOOKUP:D2
=IF(ISNUMBER(VLOOKUP(C2, $A$2:$B$4, 2)), VLOOKUP(C2, $A$2:$B$4, 2), 0)
E 列使用数组:E2:E4
={=IF(ISTEXT(C2:C4), INDEX($B$2:$B$4, MATCH(C2:C4, $A$2:$A$4, 0))}
我想要对 C 列中输入 x、y 的值求和。
对 D2:D4 或 E2:E4 求和可得出 x 和 y 值的正确求和结果:30
直接对 E 中的 ARRAY 元素求和会产生不同的(不正确的)结果:
{=SUM(IF(ISTEXT(C2:C4), INDEX($B$2:$B$4, MATCH(C2:C4, $A$2:$A$4, 0)),0))}
或
{=SUM(IF(ISTEXT(C2:C4), INDEX($B$2:$B$4, MATCH(C2:C4, $A$2:$A$4, 0))))}
产生值 20。
我尝试过多种不同的方法(使用 ISTEXT 进行条件处理、使用 MATCH 等),但结果始终相同。有人能给出建议,说明为什么会发生这种情况以及如何纠正?首先构建数组(如上面的 E 所示),然后对其求和,这种做法既不吸引人也不可行,因为必须重复多次操作。