You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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列追加重复内容

使用步骤:

  1. 打开目标Google表格
  2. 点击顶部「扩展程序」→「Apps脚本」
  3. 删除默认代码,粘贴上述脚本,保存项目(随便起个名字比如"追加街道工具")
  4. 回到表格刷新页面,运行appendUniqueStreets函数,完成授权后即可执行

内容的提问来源于stack exchange,提问作者Temjeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:32:04