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)