You need to enable JavaScript to run this app. 如何在Google Sheets中将多列订单数据转换为每行对应一款产品的格式
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中将多列订单数据转换为每行对应一款产品的格式

你可以直接通过Google Sheets内置数组公式实现该需求,无需额外脚本,具体方案如下:

前置确认

先明确你的原始数据结构规则:

  • 前N列是订单公共字段:同一订单下所有产品共用的信息,例如订单号、下单时间、收件人信息等
  • 后续每M列为一组产品独立字段:全表所有产品字段组的结构完全一致,例如每3列对应一款产品的「产品名称/SKU/购买数量」

实现公式

在空白工作表的A1单元格输入以下公式,按实际情况替换参数即可:

=LET(
  raw_data, '原始数据表名'!A2:Z,
  common_col_cnt, 3,
  product_col_cnt, 3,
  common_fields, CHOOSECOLS(raw_data, SEQUENCE(common_col_cnt)),
  product_fields, WRAPROWS(TOCOL(CHOOSECOLS(raw_data, SEQUENCE(COLUMNS(raw_data)-common_col_cnt,1,common_col_cnt+1))),product_col_cnt),
  repeat_common, BYROW(common_fields, LAMBDA(r, MAKEARRAY(ROUNDUP((COLUMNS(raw_data)-common_col_cnt)/product_col_cnt,0),common_col_cnt, LAMBDA(x,y, INDEX(r,y))))),
  filter_empty, FILTER(HSTACK(TOCOL(repeat_common,1),product_fields), INDEX(product_fields,,1)<>""),
  header, HSTACK(CHOOSECOLS('原始数据表名'!1:1, SEQUENCE(common_col_cnt)), CHOOSECOLS('原始数据表名'!1:1, SEQUENCE(product_col_cnt,1,common_col_cnt+1))),
  VSTACK(header, filter_empty)
)

参数调整说明

  • 将'原始数据表名'替换为你存放原始数据的工作表名称
  • 将common_col_cnt的取值替换为你实际的订单公共字段总列数
  • 将product_col_cnt的取值替换为每款产品对应的独立字段总列数

实现效果

公式会按原始数据的订单顺序处理,同订单拆分出的多款产品行会相邻排列,不会出现跨订单混合的情况,同时自动过滤无内容的空产品组行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:00:03