【问题标题】:script to split a string google sheet拆分字符串谷歌表的脚本
【发布时间】:2018-10-04 22:19:20
【问题描述】:

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

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

我得到了这样的结构:

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

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案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);

}

【讨论】:

  • 您好,该功能要求我授予在该帐户中查看我所有 google 表格的所有权利。这正常吗?
  • @George 在代码中的某处添加 //@OnlyCurrentDoc
  • 它不起作用我的朋友......事情是这样的:1.- 我有一个可以注册人员的系统 2.- Zapier 获取所有这些信息并进行新的注册google sheet 3.- google sheet 需要有一个脚本在没有我的情况下拆分该信息 - 自动 4.- 我有另一个系统来获取这些详细信息并执行一些操作。我的问题是让我发疯的分裂事物。 =)
  • @George 那么它说了什么?什么错误,输出?您是否从“帮助”旁边的快速访问工具栏中按下“运行”按钮?该脚本还可以安排为每小时或每天自动运行。
【解决方案2】:

试试数组公式:

D2:

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

【讨论】:

  • 您好,非常感谢您的帮助。我在这里遇到了一个错误 = function myFunction() { =ARRAYFORMULA(SPLIT(C2:INDEX(C:C,COUNTA(C:C)),",")) } 当我输入那个错误时:Error de sintaxis (第 2 行,档案“Código”)
  • @George 这不是脚本。只需在 D2 中输入一个公式
  • 问题是 - 如果我输入这样的公式,当 zapier 进行新的注册时 - zapier 将删除该公式,这将不起作用。这就是为什么我需要一个脚本 =)
  • @George 这是一个数组公式。。只要 D2 不变,没关系,如果 zapier 像 D5 之类的删除当前行...
  • 我又试了一次,问题是 zapier 创建了一个新行,所以有公式的那个不会做任何事情,因为 zapier 又创建了一行。
猜你喜欢
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多