总和值使用数组和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]。