Google Sheets特定列去重:自动删重复行或提取关联唯一值
解决Google Sheets E列重复值关联数据去重/自动删行问题
我来帮你搞定这个需求——不管是要动态提取带关联数据的唯一值,还是自动删除E列重复的整行,都有合适的办法,比单纯用=UNIQUE(E:E)要管用得多:
方案1:动态提取带关联数据的唯一值到其他工作表(不修改原表)
如果你想保留原表不动,把E列唯一值对应的整行数据同步到其他工作表,用这个公式就可以(假设你的数据范围是A到F列,要提取到新工作表的A1单元格):
=FILTER(A:F, MATCH(E:E, E:E, 0) = ROW(E:E) - ROW(E1) + 1)
公式解释:
MATCH(E:E, E:E, 0):返回每个E列值第一次出现的行号位置ROW(E:E) - ROW(E1) + 1:计算当前行在E列的相对行号- 两者相等时,就保留这一行——也就是只保留每个E列值第一次出现的完整行数据,自动带出所有关联列内容,而且原表更新时,提取的结果会实时同步。
如果你的数据列更多或更少,只需要把A:F改成你的实际数据范围就行。
方案2:自动删除E列重复的整行(修改原表)
要是你需要直接在原表中自动清理重复行(适合频繁更新的场景),用Google Apps Script来实现自动触发最方便:
- 打开你的Google Sheets,点击顶部菜单栏的「扩展程序」→「Apps 脚本」
- 清空默认代码,粘贴下面的脚本:
function removeDuplicateRows() { // 替换成你的目标工作表名称,比如"数据源" const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('你的工作表名称'); if (!targetSheet) return; // 如果找不到表就停止执行 // 获取所有数据范围,按第5列(E列,索引从1开始)移除重复行,保留第一次出现的行 targetSheet.getDataRange().removeDuplicates([5]); }
- 保存脚本(给项目起个名字,比如"删除重复行工具")
- 设置自动触发:点击左侧菜单栏的「触发器」→「添加触发器」,按以下配置:
- 选择要运行的函数:
removeDuplicateRows - 选择部署类型:「事件源」选「从电子表格」
- 选择事件类型:根据你的需求选「编辑时」(每次编辑表格就触发)或「更改时」(表格有任何更改包括批量更新时触发)
- 点击保存,授权脚本访问你的表格权限即可
- 选择要运行的函数:
脚本说明:
这个脚本会自动扫描目标工作表,删除所有E列值重复的行,只保留每个E列值第一次出现的那一行,完全自动化,不用手动操作。
内容的提问来源于stack exchange,提问作者DxTx
相关产品推荐
相关产品推荐

