A 列到 B 列的重复值 - Google Apps 脚本
Duplicate values on column A to column B - Google Apps Script
我正在尝试实现以下结果:
因此,如果 A 列有重复值,我想在 B 列上显示这些重复值。这是我迄今为止尝试过的方法。但是代码只是让 Apple 在 B 列中显示两次。我需要如何更改我的代码才能使其按我想要的方式工作?
function findDuplicates() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var lastRow = sheet.getLastRow()
var data = sheet.getRange(1,1,lastRow).getValues()
var dataUnique = data.reduce(function (out, item) {
return out.concat(out.filter(function (comp) {
return item.toString() != comp.toString();
}).length ? [] : [item])
}, []);
var newValues = sheet.getRange(1,2,dataUnique.length).setValues(dataUnique)
}
这是我运行代码时的结果:
This is a spreadsheet 专门为解决这个问题而创建。它包含以下代码,这些代码将从 A 中获取值并将结果输出到列 B:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var input = sheet.getRange('A1:A').getValues().filter(e=>e[0]).map(e=>e[0]);
var inputLower = input.map(e=>e.toLowerCase());
var output = new Array();
input.forEach(function (e,i,arr){if(inputLower.indexOf(e.toLowerCase())!=i && output.indexOf(e)==-1){output.push(e)}});
sheet.getRange(1,2,output.length,1).setValues(output.map(e=>[e]));
}
我正在尝试实现以下结果:
因此,如果 A 列有重复值,我想在 B 列上显示这些重复值。这是我迄今为止尝试过的方法。但是代码只是让 Apple 在 B 列中显示两次。我需要如何更改我的代码才能使其按我想要的方式工作?
function findDuplicates() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var lastRow = sheet.getLastRow()
var data = sheet.getRange(1,1,lastRow).getValues()
var dataUnique = data.reduce(function (out, item) {
return out.concat(out.filter(function (comp) {
return item.toString() != comp.toString();
}).length ? [] : [item])
}, []);
var newValues = sheet.getRange(1,2,dataUnique.length).setValues(dataUnique)
}
这是我运行代码时的结果:
This is a spreadsheet 专门为解决这个问题而创建。它包含以下代码,这些代码将从 A 中获取值并将结果输出到列 B:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var input = sheet.getRange('A1:A').getValues().filter(e=>e[0]).map(e=>e[0]);
var inputLower = input.map(e=>e.toLowerCase());
var output = new Array();
input.forEach(function (e,i,arr){if(inputLower.indexOf(e.toLowerCase())!=i && output.indexOf(e)==-1){output.push(e)}});
sheet.getRange(1,2,output.length,1).setValues(output.map(e=>[e]));
}