使用Google Sheets App Script删除匹配数据的实现求助
Google Apps Script 实现批量删除指定区域中与A列重复的值
完整代码
function removeDuplicatesFromColumnA() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 获取A列所有非空值,存入Set(用于快速匹配) const columnAValues = sheet.getRange("A:A").getValues().flat() .filter(value => value !== ""); // 过滤空单元格 const columnASet = new Set(columnAValues); // 指定要处理的目标区域(默认B:E,可按需修改) const targetRange = sheet.getRange("B:E"); const targetValues = targetRange.getValues(); // 遍历目标区域,清空与A列重复的值 const updatedValues = targetValues.map(row => { return row.map(cellValue => { return columnASet.has(cellValue) ? "" : cellValue; }); }); // 将处理后的数据写回表格 targetRange.setValues(updatedValues); SpreadsheetApp.getUi().alert("处理完成!已清空指定区域中与A列重复的值"); }
零基础操作步骤
- 打开目标谷歌表格,点击顶部菜单栏「扩展程序」→「Apps 脚本」,打开脚本编辑器。
- 清空编辑器内默认代码,粘贴上面的完整代码。
- 如果你的目标区域不是B:E,找到代码里的
const targetRange = sheet.getRange("B:E");,把"B:E"改成你需要的区域(比如"C:F")。 - 点击编辑器顶部「运行」按钮,首次运行会触发谷歌安全授权,按指引完成即可(属于官方安全验证,可放心操作)。
- 运行结束后返回表格,即可看到目标区域中所有在A列出现过的值已被清空。
针对你提供的示例表格的效果
A列有效内容为John、Amy、Hunter,运行脚本后:
- B列的
Amy会被清空 - C列的
John、Amy会被清空 - D列的
John会被清空 - E列的
John、Hunter会被清空
其余不在A列的内容(如Ben、Diana、Donald等)将保留。
内容的提问来源于stack exchange,提问作者Dots
相关产品推荐
相关产品推荐

