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

如何按category_name拆分product_id并关联partner_id与status数据

解决Google Sheets数据拆分关联问题

针对你需要将product_id与拆分后的category_name一一对应,并关联partner_id和status的需求,这里提供两种可行的Google Sheets公式方案:

方案1:使用REDUCE+VSTACK实现带表头的自动生成

这个公式会自动包含表头,并将所有符合条件的行拆分后堆叠:

=REDUCE({"product_id","category_name","partner_id","status"}, 数据源!A2:D, LAMBDA(acc, row, 
  IF(INDEX(row,2)="", acc, 
    VSTACK(acc, 
      ARRAYFORMULA(
        {INDEX(row,1), SPLIT(INDEX(row,2), "、"), INDEX(row,3), INDEX(row,4)}
      )
    )
  )
))

原理说明:

  • REDUCE初始化结果为指定表头,遍历每一行原始数据
  • 跳过category_name为空的行
  • 对有效行,拆分category_name(按中文顿号、分割),并将product_id、拆分后的类别、partner_id、status组合成多行,通过VSTACK追加到结果中

方案2:使用LET+INDEX实现更高效的数组运算

如果你的Google Sheets支持LET函数(新版已默认支持),可以用这个更简洁高效的公式:

=ARRAYFORMULA(
  LET(
    data, 数据源!A2:D,
    cats, SPLIT(INDEX(data,,2), "、"),
    row_nums, SEQUENCE(ROWS(data)),
    flat_rows, FLATTEN(IF(cats<>"", row_nums,)),
    {
      INDEX(INDEX(data,,1), flat_rows),
      FLATTEN(cats),
      INDEX(INDEX(data,,3), flat_rows),
      INDEX(INDEX(data,,4), flat_rows)
    }
  )
)

原理说明:

  • LET定义变量简化公式结构,data指代原始数据范围
  • cats拆分所有category_name为二维数组
  • flat_rows生成与拆分后类别一一对应的原始行号数组
  • 通过INDEX按行号提取对应product_id、partner_id、status,与展开的类别组合成最终结果

使用注意:

  1. 确保公式中的数据源!A2:D替换为你实际的原始数据所在标签页和范围
  2. 如果不需要自动生成表头,可自行手动输入表头后,将公式放在A2单元格(方案1需去掉初始化的表头部分,改为REDUCE({}, 数据源!A2:D, ...))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:23:18