Excel - 将数组传递给函数

Excel - pass an array into a function

在我的文件中的一个 sheet 上,我将许多数组定义为命名范围。另一个 sheet 我想使用下拉列表或类似于 select 命名范围之一的名称,并让该命名范围的 data/contents 填充一个范围第二个sheet。这可能 WITHOUT VBA 吗?有没有数组公式可以做到这一点?

我想到的一个不完全优雅的方法是使用 index 函数并将其复制到大小等于最大命名范围大小的单元格范围内。类似于:

=INDEX(range_1,ROW(),COLUMN())

这要求我能够将命名范围的名称传递给函数。这可能吗?

如果能回答其中一个或两个问题,我们将不胜感激。

没有它,我能想到的唯一其他方法就是使用蛮力,offset 查找,我不想这样做。

感谢您的帮助。

Indirect 可能会做你想做的事。

在 Sheet1 中,我创建了 3 个命名范围:

然后在Sheet2中,我

1) 把这些名字放在A列

2) 使用链接到 A 列的数据验证列表将名称放入单元格 (C2)

3) 在我想要保存数组 (C4:E5)

的单元格中使用数组公式 {=INDIRECT(C2)}(接受 Ctrl+Shift+Enter

当通过下拉更改C2时,数组会自动更改: