这很新

单元格数据如下所示:

colx
aa, bbb
oue, hed, ono
hud


需要它成为:

colx              coly     colz
aa, bbb           aa       bbb
oue, hed, ono     oue      hed, ono
hud               hud


我需要在其第一个定界符上拆分一列,然后将第一部分(第一个定界符之前的所有内容)发回到原始列的右侧的下一列中,并发回其余的字符串(在第一个定界符之后的所有内容)原始列右侧的第二列

我在这里找到了功能SplitTheString:
How do I split a string, breaking at a particular character?

我知道我的代码无法正常工作,无法解决它,尤其是如何输出数据

谢谢

function splitColumn() {
 var range =getColRng("Elements","colx", 2)
 var values = range.getValues());

  for (var row in values[0]) {
      values[row][0] == SplitTheString(ResultStr);)

 }
 range.setValues(values);
 }


辅助功能:

 function SplitTheString(ResultStr) {
     if (ResultStr != null) {
         var SplitChars = ', ';
         if (ResultStr.indexOf(SplitChars) >= 0) {
            var DtlStr = ResultStr.split(SplitChars);
            var name  = DtlStr[0];
            var street = DtlStr[1];
        }
    }
}

function getColRng(shtName, cheader,startrow) {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shtName);
 var lc = sheet.getMaxColumns();
 var lr = sheet.getLastRow();
 var hn = HTN(shtName,cheader)
 return sheet.getRange(startrow, hn, lr);
}

最佳答案

下面的示例脚本怎么样?该脚本假定列A中有数据。

示例脚本:

function splitColumn() {
  var ss = SpreadsheetApp.getActiveSheet()
  var range = ss.getRange(1, 1, ss.getLastRow(), 1);
  var values = range.getValues();
  var result = [];
  for (var i in values) {
    if (i == 0) {
      result.push([values[i][0], "coly", "colz"]);
    } else {
      var splitted = values[i][0].split(",");
      var others = splitted.slice(1, splitted.length).join(",");
      result.push([values[i][0], splitted[0], others]);
    }
  }
  ss.getRange(ss.getLastRow()+1, 1, result.length, result[0].length).setValues(result);
}


输入:

javascript - 在第一个定界符上拆分列,并在定界符gs脚本之前和之后输出-LMLPHP

输出:

javascript - 在第一个定界符上拆分列,并在定界符gs脚本之前和之后输出-LMLPHP

如果我误解了您的问题,请告诉我。我要修改。

编辑:

function splitColumn() {
  var ss = SpreadsheetApp.getActiveSheet();
  var range = ss.getRange(2, 1, ss.getLastRow(), 1);
  var values = range.getValues();
  var result = [];
  for (var i in values) {
    if (values[i][0]) {
      var splitted = values[i][0].split(",");
      var others = splitted.slice(1, splitted.length).join(",");
      result.push([splitted[0], others]);
    } else {
      result.push(["",""]);
    }
  }
  ss.getRange(2, 2, result.length, result[0].length).setValues(result);
}

关于javascript - 在第一个定界符上拆分列,并在定界符gs脚本之前和之后输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48102050/

10-11 23:06
查看更多