You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用户列表迁移时按相同ID合并多行并汇总订阅数值的实现方法咨询

方案1:Excel/Google Sheets 无代码实现(适合非技术人员,数据量10万行以内)
  • 第一步:将原始数据按「邮箱」列升序、「订阅起始日期」列降序排序,确保同一邮箱的最新订阅记录排在最前
  • 第二步:在空白 Sheet 中用UNIQUE(原始数据!A:A)提取所有不重复的邮箱地址(假设A列为邮箱列)
  • 第三步:匹配用户基础信息,同邮箱的姓名、手机号等信息一致,直接用VLOOKUP匹配第一条记录即可,公式参考=VLOOKUP(当前行邮箱, 原始数据!A:B, 2, FALSE)(B列为姓名列)
  • 第四步:统计单用户总订阅费用,公式参考=SUMIF(原始数据!A:A, 当前行邮箱, 原始数据!C:C)(C列为订阅费用列)
  • 第五步:匹配订阅等级,公式参考=IF(当前总费用单元格<20,"Beginner","Pro")
  • 第六步:提取最新订阅日期,公式参考=MAXIFS(原始数据!D:D, 原始数据!A:A, 当前行邮箱)(D列为订阅起始日期列,旧版Excel无MAXIFS可改用数组公式=MAX(IF(原始数据!A:A=当前行邮箱,原始数据!D:D))按Ctrl+Shift+Enter确认)
方案2:Python 脚本实现(适合数据量10万行以上,需批量处理的场景)
import pandas as pd

# 读取原始数据,csv格式换成read_csv即可
df = pd.read_excel("原始订阅数据.xlsx")

# 按邮箱分组聚合计算
result = df.groupby("邮箱", as_index=False).agg(
    # 所有用户基础字段都按该格式添加,取第一条即可
    姓名=("姓名", "first"),
    总订阅费用=("订阅费用", "sum"),
    最新订阅日期=("订阅起始日期", "max")
)

# 生成订阅等级字段
result["订阅等级"] = result["总订阅费用"].apply(lambda x: "Beginner" if x < 20 else "Pro")

# 导出结果,去掉行索引
result.to_excel("合并后订阅数据.xlsx", index=False)

使用前将代码中的列名替换为自己实际数据的列名即可。

方案3:SQL 实现(适合数据存储在业务数据库的场景)
SELECT 
    邮箱,
    姓名,
    -- 其他需要保留的用户基础字段都添加到此处和GROUP BY中
    SUM(订阅费用) AS 总订阅费用,
    MAX(订阅起始日期) AS 最新订阅日期,
    CASE WHEN SUM(订阅费用) < 20 THEN 'Beginner' ELSE 'Pro' END AS 订阅等级
FROM 订阅记录表
GROUP BY 邮箱, 姓名
注意事项
  • 所有操作前务必备份原始数据,避免误操作导致数据丢失
  • 若存在同一邮箱对应不同基础信息(如姓名不一致)的情况,建议先清洗基础信息再执行合并操作

内容的提问来源于stack exchange,提问作者Mista K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:09:02