总和值使用数组和INDEX

我有以下样本表:

1/ABCDEFGHIJ 2 3 Points 8 4 2 1 4 5 Values 1 2 3 4 4 3 1 2 

我试图根据“值”中的数组索引来总结“点”。

我的预期结果是: 30

这是我的公式:

 {=SUM(INDEX($C$3:$F$3,1,C5:J5))} 

不过由于某些原因,这只返回数组的第一个值,而不是整个和。

澄清一下,C#版本会是这样的:

 var points = new int[] { 8, 4, 2, 1 }; var values = new int[] { 2, 4, 3, 1, 2, 4, 2 }; var result = (from v in values select points[v - 1]).Sum(); // -1 as '4' will crash, but in Excel '4' is fine 

编辑:进一步澄清例子

另一个例子澄清:

点是数组。 “值”表示要求数组的索引。

上面的例子是一样的:

 =SUM(8, 4, 2, 1, 1, 2, 8, 4) 

INDEX将永远不会从数组中取出其行或列参数,然后在一个单元格中包含的一个数组公式中执行多次。 对于这个OFFSET将是必要的。

 {=SUM(N(OFFSET($C$3,,C5:J5-1)))} 

作为数组公式。

要么

 =SUMPRODUCT(N(OFFSET($C$3,,C5:J5-1))) 

作为隐式数组公式,无需[Ctrl] + [Shift] + [Enter]。