谷歌表格按列分组拼接数据为单字符串的公式方案咨询
谷歌表格按指定列分组拼接非空字段方案
适用场景
原始数据表(表1)包含A-M多列数据,需按M列分组,将每组所有行的非空字段按顺序拼接为单个字符串,存入第二张表(表2)的B列,表2A列为M列的去重取值,适配超大数据体量场景。
方案:单格输入自动溢出数组公式(无需逐行拖拽,运算效率高)
直接在表2的B2单元格输入以下公式,按回车后会自动匹配A列所有去重值,批量生成对应拼接结果:
=BYROW(A2:A, LAMBDA(group_val, IF(group_val="", "", TEXTJOIN("|", TRUE, FLATTEN(FILTER(Sheet1!A2:L, Sheet1!M2:M=group_val)) ) ) ))
参数调整说明
- 公式中
Sheet1替换为你实际的原始数据表表名 TEXTJOIN第一个参数"|"为字段拼接分隔符,可按需替换为逗号、空格等其他符号Sheet1!A2:L为原始数据中需要拼接的字段范围,若你需要拼接的列范围有调整可直接修改- 公式中
TRUE参数表示自动跳过空字段,符合需求无需修改
可选优化:无需提前准备去重列的全自动化公式
如果不想提前手动提取M列的去重值放到表2A列,可直接在表2的A2单元格输入以下公式,一次性自动生成去重分组列+拼接结果列:
=LET( unique_groups, UNIQUE(FILTER(Sheet1!M2:M, Sheet1!M2:M<>"")), join_result, BYROW(unique_groups, LAMBDA(x, TEXTJOIN("|", TRUE, FLATTEN(FILTER(Sheet1!A2:L, Sheet1!M2:M=x))))), HSTACK(unique_groups, join_result) )
该公式会自动跳过M列的空值,输出两列结果:第一列是M列去重值,第二列是对应拼接字符串。
内容的提问来源于stack exchange,提问作者Antonio Padua
相关产品推荐
相关产品推荐

