在Google Sheets中结合UNIQUE与TRANSPOSE实现用户订单产品ID聚合
按邮箱聚合所有产品ID的解决方案
针对你提到的电商订单数据聚合需求——把同一用户(邮箱作为唯一标识)的所有产品ID(包括每行的两个产品ID,重复购买的ID追加展示)合并成逗号分隔的字符串,这里给你一个适用于Google Sheets的简洁公式方案:
公式实现
假设你的订单数据在A2:C列(A列是用户邮箱,B、C列是每行的两个产品ID),可以在目标区域的首行(比如E2单元格)输入以下数组公式:
=BYROW(UNIQUE(A2:A), LAMBDA(email, {email, TEXTJOIN(", ", TRUE, FILTER(B:C, A:A=email))}))
公式拆解说明
UNIQUE(A2:A):先提取所有不重复的用户邮箱,生成我们要处理的唯一用户列表BYROW(...):遍历每个唯一邮箱,对单个用户的数据进行单独处理LAMBDA(email, ...):定义针对每个邮箱的处理逻辑,最终返回「邮箱 + 合并后的产品ID字符串」的组合FILTER(B:C, A:A=email):筛选出当前邮箱对应的所有行中的B、C列产品ID,不管是第一次还是重复购买的ID都会被纳入TEXTJOIN(", ", TRUE, ...):把筛选出来的所有产品ID用「逗号+空格」分隔成一个字符串,TRUE参数会自动忽略空值(避免出现多余的分隔符)
效果说明
这个公式会自动生成两列数据:第一列是唯一的用户邮箱,第二列是该用户所有购买过的产品ID(包括每行的两个ID,重复购买的ID会按购买顺序追加展示),完全匹配你的需求。
感谢player0提供的初始思路帮助梳理逻辑~
内容的提问来源于stack exchange,提问作者Harry Norman
相关产品推荐
相关产品推荐

