Google Sheets按指定列唯一值统计并合并结果至单个单元格
解决Google Sheets分组统计结果合并为单个单元格的问题
适用公式
直接在I2单元格替换为以下公式即可实现需求:
=TEXTJOIN(", ", TRUE, BYROW(QUERY(FILTER(C2:D,B2:B=H2),"select Col2, count(Col2) where Col2 is not null group by Col2 label count(Col2) ''",0), LAMBDA(row, INDEX(row,1)&" "&INDEX(row,2))))
公式说明
- 保留核心逻辑:你的
QUERY+FILTER组合已经完成了「筛选B列等于H2、按D列分组计数」的核心需求,公式完整保留这部分逻辑。 - 逐行拼接内容:通过
BYROW遍历QUERY返回的每一行结果,用LAMBDA把每行的「D列值」和「对应计数」用空格拼接成单个字符串(比如c - Cup 1)。 - 合并为单个单元格:最后用
TEXTJOIN把所有拼接好的字符串用,(逗号加空格)连接,TRUE参数自动忽略空行,避免出现多余分隔符。
替代简化方案
如果觉得嵌套QUERY不够直观,也可以用COUNTIFS直接生成分组计数再合并:
=TEXTJOIN(", ", TRUE, ARRAYFORMULA(UNIQUE(FILTER(D2:D,B2:B=H2))&" "&COUNTIFS(B2:B,H2,D2:D,UNIQUE(FILTER(D2:D,B2:B=H2)))))
此方案先提取符合条件的D列唯一值,再对应计算每个值的出现次数,最后拼接合并,逻辑更直接。
内容的提问来源于stack exchange,提问作者taaka
相关产品推荐
相关产品推荐

