Warm tip: This article is reproduced from serverfault.com, please click

excel-如何将“枚举”转换为数组

(excel - How to convert an "enumerate" to array)

发布于 2020-11-28 08:25:26

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

在工作表中存在长度为n的数组a。但是,b的值并不直接存在。为了得到b,有一列数据和n个索引。b [i] =数据[索引[i]]

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

如何告诉excel将INDEX(数据,索引)当作数组?

样本

Questioner
Songhao Li
Viewed
0
Tom Sharpe 2020-11-28 16:53:18

在早期版本的Excel(PRE-O365),你必须使用以下机动交付使用索引数组如下描述

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

1 {1}周围的花括号不是严格必需的,但是我倾向于将它们放在一边以表示我正在使用此技巧。

在此处输入图片说明