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

如何使用ARRAYFORMULA创建合并同类别项目的表格?

解决方案:批量合并同类别的项目到单个单元格

问题背景

现有表格结构:

项目类别
苹果水果
橙子水果
花椰菜蔬菜
玫瑰花卉
郁金香花卉
牛排肉类
胡萝卜蔬菜
三文鱼肉类

需要生成的目标表格:

类别项目
水果苹果, 橙子
蔬菜花椰菜, 胡萝卜
肉类牛排, 三文鱼
花卉玫瑰, 郁金香

用户当前可实现单个类别合并的公式:
=ARRAYFORMULA(CONCATENATE(REPT(A3:A&" ",B3:B=G3)))
但无法批量处理,需要适配成可自动批量生成的ArrayFormula。

批量处理公式

在D2单元格输入以下公式,会自动生成唯一类别列(D列)和对应的合并项目列(E列):

=LET(
  unique_cats, UNIQUE(B3:B),
  joined_items, BYROW(unique_cats, LAMBDA(cat, TEXTJOIN(", ", TRUE, FILTER(A3:A, B3:B=cat)))),
  HSTACK(unique_cats, joined_items)
)

公式说明

  • UNIQUE(B3:B):提取B列中的所有唯一类别,作为目标表格的D列内容。
  • BYROW(unique_cats, LAMBDA(cat, TEXTJOIN(", ", TRUE, FILTER(A3:A, B3:B=cat)))):遍历每个唯一类别,用FILTER筛选出对应类别的项目,再用TEXTJOIN将项目以, 分隔合并成单个字符串。
  • HSTACK:将唯一类别列和合并后的项目列横向拼接,形成目标表格结构。

替代方案(旧版Google Sheets兼容)

如果你的Google Sheets版本不支持LET或BYROW,可以使用以下数组公式:

在D2单元格输入:

=ARRAYFORMULA(
  IFERROR(
    VLOOKUP(
      UNIQUE(B3:B),
      QUERY(A3:B, "select B, GROUP_CONCAT(A, ', ') group by B"),
      {1,2},
      FALSE
    )
  )
)

这个公式通过QUERY函数的GROUP_CONCAT直接按类别分组合并项目,再配合UNIQUE和VLOOKUP输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:05:13