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

使用Google Apps Script提取Google表格A列重复值到B列的代码修改问题

解决方案

你的现有代码逻辑存在偏差:当前reduce逻辑实现的是提取A列所有不重复值,并非你需要的「出现次数≥2的重复值」,因此运行结果不符合预期。

你可以参考下面修改后的代码:

function findDuplicates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet()
  var lastRow = sheet.getLastRow()
  // 读取A列数据,拍平为一维数组方便统计
  var data = sheet.getRange(1,1,lastRow).getValues().flat()

  // 第一步:统计每个值的出现次数
  var countMap = {}
  data.forEach(item => {
    const key = item.toString()
    countMap[key] = (countMap[key] || 0) + 1
  })

  // 第二步:筛选出出现次数≥2的重复值,转回二维数组适配setValues要求
  var duplicateValues = []
  for (let key in countMap) {
    if (countMap[key] >= 2) {
      duplicateValues.push([key])
    }
  }

  // 写入B列前先清空原有B列数据,避免残留旧内容
  sheet.getRange(1,2,lastRow).clearContent()
  if (duplicateValues.length > 0) {
    sheet.getRange(1,2,duplicateValues.length).setValues(duplicateValues)
  }
}

修改说明

  • 先用对象统计每个值的出现次数,避免原逻辑中误把所有唯一值都输出的问题
  • 新增写入前清空B列的逻辑,避免旧数据干扰
  • 适配Google Apps Script的setValues要求的二维数组格式,运行更稳定

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:06:03