Google Sheets:逗号分隔单元格去重并统计每人标签出现次数
解决方案
1. Sheet1 每行B、C列标签去重合并
替换你当前的公式,用以下简化公式实现每行B、C列标签自动去重后合并:
=ARRAYFORMULA(IF(ROW(A:A)=1, "合并标签", IF(A:A="", "", TEXTJOIN(", ", TRUE, UNIQUE(FLATTEN(B:C))))))
- 逻辑说明:
FLATTEN(B:C):把当前行的B、C列内容合并为一个一维数组UNIQUE(...):对数组内的标签去重TEXTJOIN(", ", TRUE, ...):用,连接去重后的标签,忽略空值ARRAYFORMULA:实现整列自动计算,无需下拉
2. Sheet2 直接统计姓名-标签出现次数
无需依赖Sheet1的合并列,直接用公式生成统计结果,满足“允许重复行统计记录数”的需求:
=QUERY(INDEX(SPLIT(FLATTEN(Sheet1!A2:A&"~"&Sheet1!B2:C), "~")), "SELECT Col1, Col2, COUNT(Col2) WHERE Col2 IS NOT NULL GROUP BY Col1, Col2 LABEL Col1 '姓名', Col2 '标签', COUNT(Col2) '出现次数'")
- 逻辑说明:
FLATTEN(Sheet1!A2:A&"~"&Sheet1!B2:C):将每个姓名与对应的B、C列标签一一配对,生成姓名~标签格式的扁平化列表SPLIT(..., "~"):拆分出姓名和标签两列QUERY(...):按姓名和标签分组,统计每个组合的出现次数,自动生成表头
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

