Google Sheets将分组与项目列合并为特定格式单列的技术需求
Google Sheets 分组项目格式化输出解决方案
需求说明
将原始工作表中GROUP(分组)和ITEM(项目)列的数据,转换为单列格式:每个分组名单独一行,随后列出该分组下所有项目(每行一个项目),分组之间用空行分隔,且公式支持自动适配新增的分组或项目。
解决方案公式
假设原始数据位于Sheet1的A列(GROUP)和B列(ITEM),在新工作表的目标单元格(如A1)中输入以下公式:
=ARRAYFORMULA(FLATTEN(LAMBDA(groups, MAP(groups, LAMBDA(g, {g; FILTER(Sheet1!B2:B, Sheet1!A2:A=g); ""})))(UNIQUE(FILTER(Sheet1!A2:A, Sheet1!A2:A<>"")))))
公式拆解
UNIQUE(FILTER(Sheet1!A2:A, Sheet1!A2:A<>"")):提取所有非空的唯一分组名称,自动识别新增的分组MAP(groups, LAMBDA(g, {g; FILTER(Sheet1!B2:B, Sheet1!A2:A=g); ""})):对每个分组执行以下操作:- 输出分组名称单独一行
- 输出该分组下的所有项目(每行一个)
- 添加一个空行作为分组间的分隔
FLATTEN:将嵌套的多维数组展开为单列ARRAYFORMULA:确保公式自动扩展,无需手动下拉,适配新增的项目或分组
原公式问题说明
你之前使用的=ARRAYFORMULA(IF(A2:A<>"", A2:A&" | "&TEXTJOIN(", ",TRUE,FILTER(B2:B, A2:A=A2:A)), ""))不符合需求的原因:
- 会重复显示每个项目对应的分组名,而非仅在组首显示一次
- 将同组项目合并为一行,而非每行一个项目
- 没有添加分组间的空行分隔
内容的提问来源于stack exchange,提问作者sjh3192
相关产品推荐
相关产品推荐

