首页 > 解决方案 > Google 表格脚本帮助:复制/粘贴值 + 清除数据 + 合并行(保留唯一值)

问题描述

我的公司已改用在 Google 表格中管理潜在客户生成,我们正在努力提高表格内流程的效率。这是一个示例表:https ://docs.google.com/spreadsheets/d/1MrJiHDd7MUXp9eWspMR8gqjA_fBIv9w5vfos3oJqDxI/edit?usp=sharing 。

目标是一个可以从执行以下操作的菜单运行的脚本:

  1. 从数据复制数据
  2. Destination中将值粘贴到最后一个数据之后的行中
  3. 清除数据数据集(Data 中有一些公式使用了我只想运行一次的第三方 API)
  4. Destination中,合并行以删除重复项,但使用“,”作为分隔符保持唯一值

回复:4,这是一个例子:

amomsvillage.com    A Mom's Village Frank   test@amomsvillage.com       test2@amomsvillage.com
amomsvillage.com    A Mom's Village Gary    test@amomsvillage.com       test3@amomsvillage.com

变成:

amomsvillage.com    A Mom's Village Frank,Gary  test@amomsvillage.com       test2@amomsvillage.com,test3@amomsvillage.com

下面是我用于 1-3 的公式,它最有效(唯一的问题是它没有得到实际的最后一行数据,即 A 开始有空白的地方)。但是,我必须单独运行 PowerTools 的 Combine Rows 来完成 4,而一步完成会很棒。[目标]显示数据在 1-4 之后的样子。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Functions')
      .addItem('Copy Paste', 'moveValuesOnly')
      .addToUi();
}
function moveValuesOnly() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('Data!A2:E');
  var destSheet = ss.getSheetByName("Destination");
  var lastRow = destSheet.getLastRow();
  destSheet.insertRowAfter(lastRow);
  source.copyTo(destSheet.getRange(lastRow + 1,1),{contentsOnly: true});
  source.clear();
}

我想做一些额外的改进,但我想先得到上面的!

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读