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

如何用Google Script实现Google Sheet两列备注内容合并去重

Google Sheet备注列自动合并去重实现思路

1. 字符串拆分预处理

先写拆分备注的辅助逻辑,把形如-标签1 -标签2的字符串拆分为纯标签数组:

  • 先去除字符串开头的-符号,再用-作为分隔符拆分字符串,过滤掉空值和空格内容,避免无效标签进入后续流程。
  • 针对空输入的情况做兼容处理,避免拆分报错。

2. 数组去重合并

  • 合并两个拆分后的标签数组,通过ES6的Set数据结构完成去重,Set天然支持按插入顺序保留元素,重复元素会被自动过滤,不需要额外写判断逻辑。
  • 如果需要统一标签排序,可以在去重后调用sort()方法,支持按字母顺序、自定义优先级等规则调整顺序。

3. 格式回拼

把去重后的标签数组重新拼接为目标格式:给每个标签前拼接-符号,所有标签用空格分隔,得到最终的合并备注字符串。

4. 自动触发配置

要实现备注更新时自动执行合并,需要绑定Google Sheet的编辑触发器:

  • 在Google Apps Script中添加onEdit触发函数,通过事件对象判断修改的单元格是否属于你设定的两个关联备注列。
  • 如果是目标列触发的修改,就调用上述合并逻辑,把结果写入指定的合并备注列即可。

可直接复用的代码示例

// 合并两个备注字符串的核心函数
function mergeNotes(note1, note2) {
  // 辅助函数:把备注字符串拆分为标签数组
  const splitNote = (inputStr) => {
    if (!inputStr || inputStr.trim() === '') return []
    return inputStr.replace(/^-/, '').trim().split(' - ').filter(tag => tag.trim() !== '')
  }

  const tagArr1 = splitNote(note1)
  const tagArr2 = splitNote(note2)

  // 合并去重,需要按字母排序可取消注释下方的.sort()
  const uniqueTags = [...new Set([...tagArr1, ...tagArr2])]
  // .sort((a,b) => a.localeCompare(b))

  // 拼接为目标格式
  return uniqueTags.map(tag => `-${tag}`).join(' ')
}

// 测试示例:输入你给出的两个测试备注
// mergeNotes("-Friendly -Fun", "-Friendly -Cheerful") 输出结果为 "-Friendly -Fun -Cheerful"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:06:04