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

如何用单个数组公式在Google Sheets中拆分列并复制行生成数组

Google Sheets 高级数组公式解决方案:关联维度列与展开页码序列

完整公式

=TOCOL(
  LAMBDA(rawData,
    MAP(
      CHOOSECOLS(rawData, 1), CHOOSECOLS(rawData, 2), CHOOSECOLS(rawData, 3),
      lambda(dim1, dim2, pages,
        LAMBDA(splitCommas,
          TOCOL(
            MAP(splitCommas,
              lambda(pagePart,
                LAMBDA(splitDash,
                  HSTACK(
                    REPT(dim1, IFERROR(SEQUENCE(1, INDEX(splitDash,2)-INDEX(splitDash,1)+1,1,1),1)),
                    REPT(dim2, IFERROR(SEQUENCE(1, INDEX(splitDash,2)-INDEX(splitDash,1)+1,1,1),1)),
                    IFERROR(SEQUENCE(1, INDEX(splitDash,2)-INDEX(splitDash,1)+1, INDEX(splitDash,1),1), pagePart)
                  )
                )(SPLIT(pagePart, "-"))
            )
          )
        )(SPLIT(pages, ","))
      )
    )
  )(A5:C6),
1)

逻辑拆解

  • 外层数据封装:通过LAMBDA(rawData, ...)(A5:C6)将输入的三列数据整体传入,确保后续处理能同步获取维度值与页码信息
  • 逐行遍历处理:MAP函数同时读取每行的Dimension1、Dimension2和Pages值,保证维度与页码的对应关系不丢失
  • 页码拆分与展开:先按逗号拆分页码字符串为单个条目,再对每个条目按横杠拆分,区分单个页码和连续页码范围:
    • 单个页码:直接保留页码,同步复制对应维度值
    • 连续页码:用SEQUENCE生成完整页码序列,通过REPT将维度值复制对应行数,再用HSTACK横向拼接维度列与页码列
  • 结果扁平化:用TOCOL将多层嵌套的数组转为规整的二维表格结构

核心改进说明

你之前的公式仅完成了页码展开,未同步关联维度列的核心原因是没有在遍历过程中携带维度值。本方案通过在MAP中同时传入三列数据,让每一步页码处理都能绑定对应行的维度信息,最终实现维度列与展开后页码的一一对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:05:12