Excel - 将数组传递给函数

时间:2016-03-17 01:19:25

标签: arrays excel array-formulas named-ranges

在我的文件中的一张纸上,我有许多数组被定义为命名范围。另一张表我想使用下拉列表或类似的东西来选择一个命名范围的名称,并使该命名范围的数据/内容填充第二张表上的范围。这可能是没有 VBA吗?是否有一个数组公式可以做到这一点?

我曾经想到的一种非常优雅的方法是使用index函数并将其复制到大小相当于最大命名范围大小的单元格范围内。类似的东西:

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

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

非常感谢对这两个问题中的任何一个或两个问题的回答。

如果没有这个,我能想到的唯一另一种方法是使用蛮力,offset查找,我不想这样做。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Indirect可能会按您的意愿行事。

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

enter image description here

然后在Sheet2中,我

1)将这些名字放在A栏

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

3)在我想要保存数组的单元格中使用数组公式{=INDIRECT(C2)}(用Ctrl+Shift+Enter接受)(C4:E5)

enter image description here

当通过下拉列表更改C2时,阵列会自动更改:

enter image description here