如何用Google App Script将A列未在D列出现的数据复制到D列下方?
Google App Script 实现A列未在D列出现的街道追加到D列下方
直接上可运行的脚本,你可以复制到Google表格的脚本编辑器里使用:
function appendUniqueStreets() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getActiveSheet(); // 也可指定工作表:ss.getSheetByName("你的工作表名称") // 获取A、D列非空数据 const columnA = sheet.getRange("A:A").getValues().flat().filter(val => val !== ""); const columnD = sheet.getRange("D:D").getValues().flat().filter(val => val !== ""); // 用集合存储D列街道,提升查找效率 const dStreetSet = new Set(columnD); // 筛选A列中未在D列出现的街道,同时去重 const uniqueStreets = [...new Set(columnA.filter(street => !dStreetSet.has(street)))]; // 批量追加到D列末尾 if (uniqueStreets.length > 0) { const lastRowD = sheet.getRange("D:D").getValues().filter(String).length; sheet.getRange(lastRowD + 1, 4, uniqueStreets.length, 1).setValues(uniqueStreets.map(street => [street])); } }
关键说明:
- 若你的数据在固定工作表,建议把
getActiveSheet()改成getSheetByName("你的表名"),避免切换工作表时出错 - 用
Set处理D列数据,是因为集合的查找速度远快于数组,适合批量数据场景 - 额外做了A列自身的去重处理,防止A列有重复街道导致D列追加重复内容
使用步骤:
- 打开目标Google表格
- 点击顶部「扩展程序」→「Apps脚本」
- 删除默认代码,粘贴上述脚本,保存项目(随便起个名字比如"追加街道工具")
- 回到表格刷新页面,运行
appendUniqueStreets函数,完成授权后即可执行
内容的提问来源于stack exchange,提问作者Temjeh
相关产品推荐
相关产品推荐

