Arrays 使用数组和索引求和值

Arrays 使用数组和索引求和值,arrays,excel,Arrays,Excel,我有以下样本表: 1/A B C D E F G H I J 2 3 Points 8 4 2 1 4 5 Values 1 2 3 4 4 3 1 2 我试图根据“值”中的数组索引对“点”求和 我的预期结果是:30 这是我的公式: {

我有以下样本表:

1/A B       C   D   E   F   G   H   I   J
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
永远不会从数组中获取其行或列参数,然后在一个单元格中包含的一个数组公式中执行多次。为此,将需要偏移量

或者

{=SUM(N(OFFSET($C$3,,C5:J5-1)))}
作为数组公式


作为一个隐式数组公式,不需要[Ctrl]+[Shift]+[Enter]。

INDEX
永远不会从数组中获取其行或列参数,然后在一个单元格中包含的一个数组公式中执行多次。为此,将需要偏移量

或者

{=SUM(N(OFFSET($C$3,,C5:J5-1)))}
作为数组公式


作为一个不需要[Ctrl]+[Shift]+[Enter]的隐式数组公式。

作为不使用C#编程的求和公式,您能否将要相加的数字和这样相加的结果拼出来?作为不使用C#编程的求和公式,你能解释一下加在一起的数字和加起来的结果吗?如果你能花点时间激发我的好奇心,你从样本数据中得到了什么结果?我在等着看OP预期的结果。wadr,很少有非挥发性物质不能代替挥发性物质,但我希望看到OP预期的结果,因为(对我来说)从问题中的样本数据、代码或公式中不清楚。结果是8、4、2、1、1、2、8的总和,4,即30,是从
C3:F3
中逐个从
C5:J5
中的列索引中获取的值。根据我的经验,索引永远不会从数组中获取其行或列参数。顺便说一下,#C示例还有其他索引。结果是24=sum(4,1,2,8,4,1,4)。如果你能抽出时间来激发我的好奇心,你从样本数据中得到了什么结果?我在等着看OP预期的结果。wadr,很少有非挥发性物质不能代替挥发性物质,但我希望看到OP预期的结果,因为(对我来说)从问题中的样本数据、代码或公式中不清楚。结果是8、4、2、1、1、2、8的总和,4,即30,是从
C3:F3
中逐个从
C5:J5
中的列索引中获取的值。根据我的经验,索引永远不会从数组中获取其行或列参数。顺便说一下,#C示例还有其他索引。结果是24=和(4,1,2,8,4,1,4)