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时,数组会自动更改:
在我的文件中的一个 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时,数组会自动更改: