非常新的
单元格数据如下:
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);
}
答案 0 :(得分:1)
以下示例脚本如何?该脚本假设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);
}
如果我误解了你的问题,请告诉我。我想修改。
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);
}