Справка скрипта Google Sheets: копировать / вставлять значения + очистить данные + объединить строки (сохранить уникальные значения) - PullRequest
0 голосов
/ 02 октября 2018

моя компания перешла на управление генерацией потенциальных клиентов в Google Sheets, и мы пытаемся сделать процесс In-Sheets более эффективным.Вот пример листа: https://docs.google.com/spreadsheets/d/1MrJiHDd7MUXp9eWspMR8gqjA_fBIv9w5vfos3oJqDxI/edit?usp=sharing.

Цель - это скрипт, который можно запустить из меню, которое выполняет следующее:

  1. Копирование данных из Данные
  2. Вставить только значения в Пункт назначения в строке после последнего с данными
  3. Очистить Данные набор данных (в Data есть некоторые формулы, использующие сторонний API, который я хочу запускать только один раз.
  4. В Destination объедините строки, чтобы удалить дубликаты, но сохраняя уникальные значения, используя ","в качестве разделителя

Re: 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, который в основном работает (единственная проблема в том, что он не получает фактическую последнюю строку данных, т. Е. Там, где А начинает иметь пробелы).Тем не менее, мне нужно отдельно запустить Combine Rows PowerTools для достижения 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();
}

Есть некоторые дополнительные улучшения, которые я хотел бы сделать, но сначала я хочу получить приведенное выше!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...