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

使用VLOOKUP实现用户对应所有客户的去重合并展示需求

问题说明

我有一份电子表格,其中一列是用户信息,另一列记录了各用户对应的客户。需要生成新表格,将每个用户单独放在一行,其对应的所有客户去重后合并为同一单元格(以逗号分隔)。

实际表格

UserClient
UserAClientA
UserAClientA
UserBClientA
UserCClientA
UserAClientB
UserBClientC
UserCClientB
UserAClientC

期望表格

UserClient
UserAClientA, ClientB, ClientC
UserBClientA, ClientC
UserCClientA, ClientB

解法汇总

一、Excel 实现方法

方法1:函数组合(适用于Excel 365/2021及以上版本)

在新表格的B2单元格输入以下公式,下拉填充即可:

=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(原表格!$B$2:$B$9, 原表格!$A$2:$A$9=A2)))
  • 逻辑说明:
    • FILTER:筛选出当前用户对应的所有客户
    • UNIQUE:对筛选结果去重
    • TEXTJOIN:把去重后的客户用「逗号+空格」连接成字符串

方法2:Power Query工具(全版本Excel通用)

  1. 选中原表格数据,点击「数据」选项卡 →「从表格/区域」,导入Power Query编辑器
  2. 在编辑器中操作:
    • 点击「转换」选项卡 →「分组依据」
    • 分组列选择「User」,新列名设为「Client」,操作选择「所有行」,点击确定
  3. 添加自定义列,输入公式:
    = Text.Combine(List.Distinct([All Rows][Client]), ", ")
    
  4. 删除「All Rows」列,点击「关闭并上载」,即可得到目标表格

二、Google Sheets 实现方法

在新表格的B2单元格输入以下公式,下拉填充:

=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(原表格!B:B, 原表格!A:A=A2)))

逻辑与Excel函数版完全一致,Google Sheets原生支持该组合用法。

三、Python pandas 代码实现

如果用代码批量处理,可借助pandas快速完成:

import pandas as pd

# 读取原数据(支持csv/excel格式)
df = pd.read_excel("your_source_file.xlsx")  # 若为csv则用pd.read_csv()

# 分组、去重、合并客户列
result_df = df.groupby("User")["Client"].apply(lambda x: ", ".join(x.unique())).reset_index()

# 保存结果
result_df.to_excel("merged_result.xlsx", index=False)  # 保存为csv则用to_csv()

内容的提问来源于stack exchange,提问作者Sudhik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:52:40