连接字符串的一部分
Concatenating part of a string
我在 A 列中有这个函数来连接一些单元格以生成 ID:
={"ID"; arrayformula(IF(C2:C="";;(LEFT(C2:C;1))&"-"&(LEFT(D2:D;1))&(LEFT(E2:E;1))&"-"&(UPPER(RIGHT(B2:B;8)))))}
我正在尝试用脚本替换函数,但我的代码不起作用。
怎么了?
function concatenate() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var lr = sheet.getLastRow()
var values1 = sheet.getSheetValues(2, 3, lr, 1);
var values2 = sheet.getSheetValues(2, 4, lr, 1);
var values3 = sheet.getSheetValues(2, 5, lr, 1);
var values4 = sheet.getSheetValues(2, 2, lr, 1);
var results = [];
for (var i = 0; i < lr; i++) {
results.push([values1[i][0].slice(0,1) + "-" + values2[i][0].slice(0,1) + values3[i][0].slice(0,1) + "-" + values4[i][0].slice(-8)]);
}
sheet.getRange(2, 1, results.length).setValues(results);
}
P.S。
如何在每次对行进行编辑时也运行脚本?
确定这不是您想要的?
function concatenate() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var results = [];
for (var i=1;i<data.length; i++) {//if you have a header row start from one
results.push([data[i][2].slice(0,1) + "-" + data[i][3].slice(0,1) + data[i][4].slice(0,1) + "-" + data[i][1].slice(-8)]);
}
sheet.getRange(2, 1, results.length,1).setValues(results);
}
我在 A 列中有这个函数来连接一些单元格以生成 ID:
={"ID"; arrayformula(IF(C2:C="";;(LEFT(C2:C;1))&"-"&(LEFT(D2:D;1))&(LEFT(E2:E;1))&"-"&(UPPER(RIGHT(B2:B;8)))))}
我正在尝试用脚本替换函数,但我的代码不起作用。
怎么了?
function concatenate() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var lr = sheet.getLastRow()
var values1 = sheet.getSheetValues(2, 3, lr, 1);
var values2 = sheet.getSheetValues(2, 4, lr, 1);
var values3 = sheet.getSheetValues(2, 5, lr, 1);
var values4 = sheet.getSheetValues(2, 2, lr, 1);
var results = [];
for (var i = 0; i < lr; i++) {
results.push([values1[i][0].slice(0,1) + "-" + values2[i][0].slice(0,1) + values3[i][0].slice(0,1) + "-" + values4[i][0].slice(-8)]);
}
sheet.getRange(2, 1, results.length).setValues(results);
}
P.S。
如何在每次对行进行编辑时也运行脚本?
确定这不是您想要的?
function concatenate() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var results = [];
for (var i=1;i<data.length; i++) {//if you have a header row start from one
results.push([data[i][2].slice(0,1) + "-" + data[i][3].slice(0,1) + data[i][4].slice(0,1) + "-" + data[i][1].slice(-8)]);
}
sheet.getRange(2, 1, results.length,1).setValues(results);
}