长度未知的数组的多单元格数组公式

长度未知的数组的多单元格数组公式

我在一张表上有一个包含数据的范围,并且想在另一张表中使用数组公式切出并操作各个列。

举例来说,我可能想使用以下公式重现一列:

=INDEX(originalData,0,MATCH("product_name",OFFSET(originalData,0,0,1),0))

其中originalData是动态命名范围,适用于第一张表中包含的所有数据。因此,它会查看标题并返回标题为“product_name”的列。

我的问题是数据的行数各不相同 - 从 50,000 到几十万不等。是否可以定义一个数组公式,以便它返回一个动态大小的数组,而不必预先选择大量我可能不需要的行,从而大大降低整个过程的速度?

(我知道这在 Google 表格中有效 - 有等效功能吗?)

编辑-为清楚起见,示例:

在工作表 1 中:

在此处输入图片描述 originalData定义为=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1)),但这实际上只是为了节省在表 2 中的公式中多次输入所有内容的麻烦。

在工作表 2 中:

我想使用这些数据来创建一个新的数据集,例如下面的数据集,它从原始数据源获取数据,有时是直接的,有时是经过操纵的(例如,价格可能从其他地方查找)。

在此处输入图片描述

但是,让我们以 A 列为例,它应该与工作表 1 上的 A 列相同。在 Google 工作表中,我将使用类似于=INDEX(originalData,0,MATCH("product_id",OFFSET(originalData,-1,0,1),0))单元格 A1 中的公式,这将返回一个等于所引用数组的行数的数组。

但是,据我所知,在 Excel 中,您必须预先选择要返回数组的范围,因此您需要提前知道数组的大小,以便选择正确的行数。由于originalData每次更新时的大小都会发生变化,因此我希望避免这种情况,并让返回数组的大小随之变化。

相关内容