如何用单个公式在Google Sheets/Excel中按名称统计唯一Lead ID
单个公式实现姓名与Lead ID的去重关联(Excel/Google Sheets)
问题场景
你有一份包含姓名和关联Lead ID的数据集,其中存在同一姓名与同一Lead ID重复匹配的记录,需要得到每个姓名仅显示一次、对应Lead ID去重后用逗号分隔的结果。
Excel 实现方案(适用于365/2021及以上版本)
在空白列(比如C2单元格)输入以下公式,下拉填充即可:
=IF(COUNTIF($A$2:A2,A2)=1,TEXTJOIN(", ",TRUE,UNIQUE(FILTER($B$2:$B$10,$A$2:$A$10=A2))),"")
公式逻辑:
COUNTIF($A$2:A2,A2)=1:判断当前行的姓名是否是首次出现,避免重复输出姓名UNIQUE(FILTER($B$2:$B$10,$A$2:$A$10=A2)):筛选出当前姓名对应的所有Lead ID并自动去重TEXTJOIN(", ",TRUE,...):把去重后的Lead ID用「逗号+空格」连接成字符串
如果需要直接生成无空白行的结果集(提取到新区域),可以用这个公式:
=LET(x,UNIQUE(A2:A10),HSTACK(x,BYROW(x,LAMBDA(y,TEXTJOIN(", ",TRUE,UNIQUE(FILTER(B2:B10,A2:A10=y)))))))
Google Sheets 实现方案
在空白列(比如C2单元格)输入以下公式,下拉填充:
=IF(COUNTIF($A$2:A2,A2)=1,TEXTJOIN(", ",TRUE,UNIQUE(FILTER($B:$B,$A:$A=A2))),"")
如果要直接生成无空白行的结果集,用这个数组公式:
=ARRAYFORMULA(HSTACK(UNIQUE(A2:A10),BYROW(UNIQUE(A2:A10),LAMBDA(y,TEXTJOIN(", ",TRUE,UNIQUE(FILTER(B2:B10,A2:A10=y)))))))
内容的提问来源于stack exchange,提问作者OwlKnowledge
相关产品推荐
相关产品推荐

