Sheet1
中有3个重复的文章来自同一域:https://docs.google.com/spreadsheets/d/1pExqHJQubnSPDKczkF9HMA2QN1cxTYmzyewQdugDRYs/edit#gid=0
目标:我想删除标题和域相同的文章。
表单DesiredResult
具有理想的结果。
我想修改此过滤器脚本以比较文章标题(column a
)和域(column C
),如果它们相同,则删除:
function removeDuplicates() {
const sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
const data = sheet.getDataRange().getValues();
var temp = {}; // Added
var newData = data.filter(function(e) { // Added
if (!temp[e[1]]) {
temp[e[1]] = e[1];
return true;
}
return false;
});
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
现在,如果它们相同,则仅查看链接。它没有使用if
语句,所以我不确定如何为2列添加比较。感谢您的任何帮助,谢谢!
更新:我尝试查看!temp[e[1]]
来查看if
语句中是否有要比较的值,但它显示为undefined
,所以我在本节中添加第二列比较的位置卡住了。
参考:上一个问题,要求比较1列-Google Sheet Scripts: How to compare only one column to remove duplicates
答案 0 :(得分:2)
Sheet1
修改为DesiredResult
。如果我的理解是正确的,那么该修改如何?在此修改中,使用removeDuplicates()
方法。它是在2019年7月26日添加的。因此,your question已在2019年7月15日发布,很遗憾,当时尚未添加此方法。请认为这只是几个答案之一。
const sheet = SpreadsheetApp.getActive().getSheetByName('Combined');
sheet.getDataRange().removeDuplicates([1, 3]);
Combined
修改为Sheet1
。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。
如果要修改脚本,请执行以下修改?另外,请考虑一下这只是几个答案之一。
if (!temp[e[1]]) {
temp[e[1]] = e[1];
if (!temp[e[0] + e[2]]) {
temp[e[0] + e[2]] = e[1];
答案 1 :(得分:0)
function removeDuplicates() {
var sheet=SpreadsheetApp.getActive().getSheetByName('Sheet1');
var data=sheet.getDataRange().getValues();
var newData = data.filter(function(r) {
return !(r[0]==r[2])//comparing column A with Column C
});
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
对此数据进行测试:
1,a,a
2,b,a
3,c,a
4,a,a
5,b,a
6,c,6
7,a,7
8,b,8
9,c,9