You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中按工作表名列表循环堆叠n*2数组?

动态堆叠多工作表n*2数组的解决方案

需求说明

实现一个可循环处理的公式,输入为工作表名列表(如A1:A3),遍历每个工作表读取指定范围(示例中为第3行),输出形如{工作表名, 值1; 工作表名, 值2...}的n*2数组。此前尝试用LET()嵌套MAP()/BYROW()时,因父函数不支持内部可变尺寸输出导致失败。

输入示例(A1:A3)

A
1Sheet1
2Sheet2
3Sheet3

动态公式解决方案

=VSTACK(
    {"Data sheet", "Data reference"},
    REDUCE("", A1:A3, LAMBDA(acc, sheet, 
        VSTACK(acc, HSTACK(REPT(sheet, COUNTA(INDIRECT("'"&sheet&"'!3:3"))), INDIRECT("'"&sheet&"'!3:3")))
    ))
)

公式说明

  • REDUCE 作为累加容器,初始值为空,遍历输入的工作表名列表
  • 对每个工作表:
    • COUNTA(INDIRECT("'"&sheet&"'!3:3")) 统计目标行的非空单元格数量
    • REPT(sheet, 统计数) 生成与数据行数匹配的工作表名字段
    • HSTACK 将工作表名字段与该行数据合并为n*2数组
  • 每次迭代用VSTACK将当前结果累加到总结果中
  • 最外层VSTACK添加表头行

输出示例

Data sheetData reference
Sheet1s1_value1
Sheet1s1_value2
Sheet2s2_value1
Sheet2s2_value2
Sheet2s2_value3
Sheet3s3_value1

内容的提问来源于stack exchange,提问作者jesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:22:03