скрипт для разбивки строки в гугл листе - PullRequest
0 голосов
/ 05 октября 2018

Мне нужна помощь, пожалуйста, здесь со скриптом для Google листа.Я получил zapier, который берет некоторую информацию из системы и вставляет ее в мой google. Проблема в том, что система отправляет информацию в виде строки с запятыми, как эта: andres, locuara@gmail.com, Албания, создание loca, holatu@ gmail.com

Так что я использовал формулу SPLIT на листе Google, и эта формула работает нормально, но проблема в том, что каждый раз, когда zapier отправляет информацию на лист, я не знаю, что произошло, но zapier удаляет формуляр излист, так что мне нужно пойти вручную и снова сделать формулу, чтобы разделить информацию и поместить туда, где она должна быть.Поэтому я хотел бы создать сценарий, который нельзя удалить, и выполнить всю работу так, как она должна быть на всем листе.

Я получил такую ​​структуру следующим образом:

enter image description here

, и мне бы хотелось, чтобы скрипт автоматически выполнял работу в каждой ячейке на всем листе.Пожалуйста, есть кто-то, кто может помочь мне с этим.?Большое спасибо =)

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Попробуйте формулу массива:

D2:

=ARRAYFORMULA(SPLIT(C2:INDEX(C:C,COUNTA(C:C)),","))
0 голосов
/ 05 октября 2018

Это должно сработать.

Он добавит элемент на панель вкладок команд в Google Sheet, когда вы откроете Sheet.Тогда вы просто нажимаете Run и ждете.

function onOpen() { 
  // Try New Google Sheets method
  try{
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('Split cells')
    .addItem('Run', 'main')
    .addToUi(); 
  }

  // Log the error
  catch (e){Logger.log(e)}

}


function main() {

  var settings = {
    dataCol: 3,
    nameCol: 4,
    /*
    mailCol: 5,
    teamCol: 6,
    teamNameCol: 7,
    contactCol: 8, 
    spreadsheet: {}
    */

  }

  settings.dataCol--;
  settings.nameCol--;
  /*
  settings.mailCol--;
  settings.teamCol--;
  settings.teamNameCol--;
  settings.contactCol--; 
  */

  settings.spreadsheet = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

  for (var i = 1; i < settings.spreadsheet.length; i++) {
    var arr = settings.spreadsheet[i][settings.dataCol].split(",");
    for (var j = 0; j < arr.length; i++) {
      settings.spreadsheet[i][settings.nameCol + j] = arr[j] ;
    }

  }



  SpreadsheetApp.getActiveSheet().getDataRange().setValues(settings.spreadsheet);

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