Google Sheets基于单列删除重复行方法咨询(A-AU列,2-9500行)
解决Google表格基于首列删除重复行(保留首次出现)的问题
我来帮你搞定这个去重需求,给你三个不同的方案,覆盖从简单操作到自动化的场景,你可以按需选择:
方案一:用内置功能一键处理(最快捷)
这是最适合普通用户的方法,不需要公式或代码,直接用Google表格自带的工具:
- 选中你的目标数据范围:可以点击A列标题,按住Shift再点击AU列标题选中所有列,然后调整选中的行范围到第2行到第9500行(或者直接手动输入
A2:AU9500到顶部的名称框里) - 点击顶部菜单栏的「数据」→「数据清理」→「删除重复项」
- 在弹出的对话框里,只勾选「列A」(因为我们要基于第一列判断重复),同时确认「保留最先出现的行」这个选项是勾选状态(默认就是这个,不过最好检查一下)
- 点击「删除重复项」,系统会自动扫描并移除后续的重复行,最后会弹出提示告诉你删除了多少条重复数据
方案二:用公式生成去重结果(不修改原数据)
如果你不想改动原始表格,想在新的工作表里得到去重后的内容,可以用UNIQUE函数:
- 新建一个空白工作表
- 在新工作表的A2单元格输入公式:
解释一下参数:第二个=UNIQUE(A2:AU9500, FALSE, FALSE)FALSE表示按行判断重复,第三个FALSE表示保留首次出现的行(这也是UNIQUE的默认行为,其实可以简化成=UNIQUE(A2:AU9500),不过写全参数更清晰) - 输入完公式后按回车,表格会自动扩展填充所有列和行,生成去重后的完整数据集
方案三:用Apps Script自动化处理(适合批量/定期操作)
如果你的表格需要定期更新并去重,或者数据量特别大(不过9500行其实内置功能也能 handle),可以用脚本实现自动化:
- 点击顶部菜单栏的「扩展」→「Apps Script」,打开脚本编辑器
- 删除默认的
myFunction代码,替换成下面的脚本:function removeDuplicatesByFirstColumn() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getRange("A2:AU9500"); const data = dataRange.getValues(); // 用对象记录已经出现过的A列值,确保只保留首次出现的行 const seenValues = {}; const uniqueRows = []; for (const row of data) { const firstColumnValue = row[0]; // 第一列(A列)的值作为判断重复的依据 if (!seenValues[firstColumnValue]) { seenValues[firstColumnValue] = true; uniqueRows.push(row); } } // 清空原数据区域,写入去重后的内容 dataRange.clearContent(); sheet.getRange(2, 1, uniqueRows.length, uniqueRows[0].length).setValues(uniqueRows); // 弹出提示告诉处理结果 SpreadsheetApp.getUi().alert(`去重完成!共保留 ${uniqueRows.length} 条不重复的行`); } - 点击左上角的保存按钮,给项目起个名字(比如「首列去重工具」)
- 点击运行按钮,按照提示授权脚本访问你的表格(这是安全的,因为脚本只在你的表格里运行)
- 运行完成后,脚本会自动处理数据并弹出提示
重要提醒
不管用哪个方案,操作前一定要先备份你的表格!可以右键点击工作表标签,选择「复制」来创建副本,避免误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者curious




