脚本来分割字符串谷歌表

时间:2018-10-04 22:19:20

标签: google-apps-script google-sheets

我需要帮助,请在此处提供Google表格的脚本。我有一个zapier,它从系统中获取一些信息并将其粘贴到我的google上,问题是系统以诸如comas这样的逗号将信息作为字符串发送:andres,locuara @ gmail.com,Albania,crea loca,holatu @ gmail.com

所以我在Google工作表上使用公式SPLIT,该公式工作正常,但问题是每次zapier将信息发送到工作表时,我都不知道发生了什么,但是zapier从工作表中删除了公式,所以我需要去手动操作,然后再次执行公式以拆分信息并将其放置在需要的位置。因此,我想制作一个无法删除的脚本,并完成所有工作,因为它需要放在整张纸上。

我有这样的结构:

enter image description here

,我希望脚本在整个工作表中的每个单元格中自动完成工作。请有人可以帮助我解决这个问题。 ?非常感谢=)

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题。

打开工作表时,它将在Google工作表的命令标签栏中添加一个项目。然后只需按运行,然后等待即可。

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);

}

答案 1 :(得分:0)

尝试arrayformula:

D2:

=ARRAYFORMULA(SPLIT(C2:INDEX(C:C,COUNTA(C:C)),","))