我整天都在尝试使用简单的查询(A1:B;“select A where A<>B”)或=filter()过滤包含文本值的2列,所以我尝试了脚本,但我也遗漏了一些东西。通过这种方式,我想在另一个数组中找到一个公共值时对填充的第一个数组进行切片。有人可以帮忙吗?这是代码:
function filterAll(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('temp1');
var lastRow = sheet.getLastRow();
var data1 = sheet.getRange(1, 4, lastRow).getValues();
var tab1 = [];
tab1.push(data1[0]);
var data2 = sheet.getRange(1, 3, lastRow).getValues();
var tab2 = [];
tab2.push(data2[0]);
// var subarray = []; // for subarray = tab2.slice(1,n)
for (var n = 1; n < data1.length; n++) {
if (tab1.join().indexOf(data1[n].join()) == -1) {
tab1.push(data1[n])
};
}
sheet.getRange(1, 2, tab1.length, tab1[0].length).setValues(tab1);
for (var n = 1; n < data2.length; n++){
if (tab2.join().indexOf(data2[n].join()) == -1) {
for (var z = 1; z < data1.length; z++){
if (data2[n] === data1[z]){
break;
} else {
tab2.push(data2[n]);
}
}
}
}
sheet.getRange(1, 1, tab2.length, tab2[0].length).setValues(tab2);
}

