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

如何在Google Sheets中用MAKEARRAY生成数组并创建动态VSTACK

解决Google Sheets动态生成门禁卡单条记录的方案

假设原数据在Sheet1的A:C列(A=租户姓名,B=公寓号,C=需发放门禁卡数量),直接在目标表的首单元格输入以下公式即可实现需求:

=LET(
  filtered_data, FILTER(Sheet1!A:C, Sheet1!C:C>0),
  names, INDEX(filtered_data,,1),
  units, INDEX(filtered_data,,2),
  counts, INDEX(filtered_data,,3),
  cumulative_counts, SCAN(0, counts, LAMBDA(a,b, a+b)),
  VSTACK(
    MAKEARRAY(
      SUM(counts),
      2,
      LAMBDA(r,c,
        LET(
          target_row, XMATCH(TRUE, cumulative_counts >= r, 0),
          IF(c=1, INDEX(names, target_row), INDEX(units, target_row))
        )
      )
    )
  )
)

公式核心逻辑

  • 过滤无效行:用FILTER自动剔除C列为0或空的记录,同时适配原表的可变行数,新增/删除租户行都无需手动调整公式范围
  • 拆分数据维度:通过INDEX把筛选后的姓名、公寓号、发卡数拆成独立数组,简化后续调用
  • 定位对应租户:SCAN计算累计发卡量,配合XMATCH找到每条门禁卡记录对应的原租户数据行
  • 生成单条记录:MAKEARRAY根据总发卡数生成对应行数的二维数组,填充姓名和公寓号,最后用VSTACK确保输出结构统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:12:10