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

如何删除Google Sheets中重复的反向URL相似度配对条目

Google Sheets双向URL重复条目去重解决思路

方案一:纯公式操作(无代码基础也可快速上手)

  • 新增辅助列D,命名为统一唯一标识,D2单元格输入公式:=IF(A2<B2, A2&"|"&B2, B2&"|"&A2),下拉填充所有行。该公式会对每行的两个URL按字符串大小排序后拼接,正向、反向的重复条目会生成完全相同的标识,中间加|是为了避免URL首尾字符拼接产生意外重复。
  • 新增辅助列E,命名为是否冗余,E2单元格输入公式:=COUNTIF(D$2:D2, D2)>1,下拉填充所有行。返回TRUE即为需要删除的重复条目,首次出现的唯一条目返回FALSE。
  • 筛选E列值为TRUE的行直接删除即可,也可通过条件格式自定义规则=$E2=TRUE高亮冗余行后人工核对再删除。

方案二:Apps Script脚本批量处理(适合万行级数据,效率更高)

  1. 点击表格顶部菜单栏「扩展程序」-「Apps Script」进入脚本编辑器
  2. 清空默认代码,粘贴以下代码:
function removeDuplicateUrlPairs() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const allData = sheet.getDataRange().getValues();
  const uniqueKeys = new Set();
  const resultRows = [];
  // 跳过表头行,若无表头请将下方i初始值改为0
  for (let i = 1; i < allData.length; i++) {
    const [urlA, urlB, similarity] = allData[i];
    // 统一生成排序后的键,有大小写不敏感需求可加.toLowerCase()
    const uniqueKey = urlA < urlB ? `${urlA}|${urlB}` : `${urlB}|${urlA}`;
    if (!uniqueKeys.has(uniqueKey)) {
      uniqueKeys.add(uniqueKey);
      resultRows.push(allData[i]);
    }
  }
  // 清空原表写入去重后数据,保留表头
  sheet.clearContents();
  sheet.getRange(1, 1, 1, allData[0].length).setValues([allData[0]]);
  if (resultRows.length) {
    sheet.getRange(2, 1, resultRows.length, resultRows[0].length).setValues(resultRows);
  }
}
  1. 保存脚本后点击运行,完成授权后即可自动完成全量数据去重,1.1万行数据处理耗时不超过10秒。

操作前请务必先备份完整表格,避免误操作导致数据丢失;如果URL存在大小写差异但视为相同的需求,可在生成uniqueKey时给urlA和urlB加上.toLowerCase()转小写后再比较。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:57:02