如何在Google Sheet中按姓名列删除重复行并保留指定Category行
实现逻辑
处理分为两个优先级执行:
- 先删除所有Category字段值为2的行
- 对剩余的Category字段值为1的行,按姓名列分组,每组仅保留首次出现的1行,其余重复行全部删除
方案1:Excel 图形界面操作(无需代码/公式)
- 第一步:删除所有Category为2的行
选中Category列,点击顶部菜单栏「数据」→「筛选」,点击Category列头的下拉箭头,取消勾选「1」,仅保留「2」的显示结果,选中所有筛选出来的行右键删除,之后清除筛选即可。 - 第二步:对剩余行按姓名去重保留首行
选中所有剩余数据区域,再次点击「数据」选项卡→「删除重复值」,在弹出的配置窗口中仅勾选「姓名」列,确认后Excel会自动保留每个姓名第一次出现的行,删除后续所有重复行。
方案2:公式标记法(适合需要先核对再删除的场景)
新增一列作为删除标记列,假设姓名列是A列,Category列是B列,数据从第2行开始(第1行是表头),在标记列第2行输入以下公式后下拉填充所有行:=IF(B2=2,"删除",IF(COUNTIF(A$2:A2,A2)>1,"删除","保留"))
之后筛选标记列的「删除」项,批量删除对应行即可。
方案3:Python Pandas 批量处理(适合大体积数据)
如果数据量较大可以用以下代码快速处理:
import pandas as pd # 读取源文件,支持csv、xlsx等格式 df = pd.read_excel("你的源文件路径.xlsx") # 过滤仅保留Category为1的行 df = df[df["Category"] == 1] # 按姓名列去重,保留每组第一行 df = df.drop_duplicates(subset="姓名", keep="first") # 导出处理后的结果 df.to_excel("去重结果.xlsx", index=False)
内容的提问来源于stack exchange,提问作者weizer
相关产品推荐
相关产品推荐

