无需VBA通过循环堆叠多个Excel命名区域的技术问询
Excel批量堆叠指定命名区域解决方案
核心公式
=VSTACK(BYROW(SEQUENCE(COUNTA(Data[ID])), LAMBDA(id, INDIRECT("range"&XLOOKUP(id, Data[ID], Data[Name]))))
公式说明
SEQUENCE(COUNTA(Data[ID])):自动生成与Data表格中ID数量匹配的序列,无需手动指定数字,后续新增ID时会自动适配。BYROW(..., LAMBDA(id, ...)):遍历序列中的每个ID,依次执行以下操作:- 通过
XLOOKUP(id, Data[ID], Data[Name])根据ID匹配对应的Name; - 拼接成目标命名区域的名称(比如ID=1对应Name=A,拼接为"rangeA");
- 用
INDIRECT调用对应的命名区域。
- 通过
VSTACK(...):将BYROW返回的所有命名区域按行堆叠合并。
效果验证
结合你的数据,执行公式后会得到如下合并结果:
| ID | Value |
|---|---|
| 1 | x11 |
| 2 | x12 |
| 3 | y11 |
| 4 | y12 |
内容的提问来源于stack exchange,提问作者SRO_TM
相关产品推荐
相关产品推荐

