首页 > 解决方案 > 如何将“枚举”转换为数组

问题描述

我正在尝试计算 sum(a.*b) = a[1] * b[1] + a[2] * b[2]+.....

长度为 n 的数组 a 存在于工作表中。b 的值虽然不直接存在。要获得 b,需要有一列数据和 n 个索引。b[i] = 数据[索引[i]]

找到 sum(a.*b) 的一种方法是首先使用 INDEX(data, indices) 缓冲 b 的值,然后使用 SUM(a * b)。我希望它在一个没有缓冲的单元格中完成。所以我尝试将 b 替换为 b 的公式,如 SUM(a * INDEX(data, index))。但是 excel 认为 INDEX(data, indices) 是可迭代的,并给了我 [SUM(a * b[1]), SUM(a * b[2]), ...]

如何告诉 excel 将 INDEX(data, index) 作为数组?

样本

标签: excelexcel-formulaarray-formulas

解决方案


在 Excel 的早期版本(O365 之前)中,您必须使用以下操作来使用索引传递数组,如此处所述

=SUMPRODUCT(D3:D4*INDEX(A2:A10,N(IF({1},B2:B3))))

1 {1} 周围的花括号不是绝对必要的,但我倾向于将它们留在里面以表明我正在使用这个技巧。

在此处输入图像描述


推荐阅读