【发布时间】:2021-05-08 14:32:32
【问题描述】:
我有一个带有两个标签的 Google 表格,我想检查行并从中删除重复项。但是,两者的要求略有不同。
在选项卡上提交的匹配项上,我将数据从 Google 表单导入到 A:C 列中,其中表单提交的脚本然后从 API 获取数据并填充 D:J,最后,K:M 通过脚本插入了一个自定义公式.数据范围为A2:M
我遇到的问题是 a) 我对这一切都不熟悉,b) 当我尝试删除重复项时(人们可以从表单中提交两次相同的内容)我找到的唯一解决方案复制了所有内容行,删除重复项并再次粘贴唯一行,因此我丢失了公式。
我让脚本检查 B 列(这只是一个 A-Z 的字母)和 C 列(唯一 ID)是否存在重复项,例如,如果第 2 行和第 3 行在 B 列中有“A”,在列中有“123456” C,那么这是重复的。作为参考,这是我的工作:
function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = [];
for (var i in data) {
var row = data[i];
var duplicate = false;
for (var j in newData) {
if(row[2] == newData[j][2] && row[3] == newData[j][3]){
duplicate = true;
}
}
if (!duplicate) {
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
我需要做的是脚本检查基于 B 和 C 列中的数据的重复行并将其删除,但必须保留 K:M 中的公式。要么从 A:J 中删除数据,要么通过其他方法。
此外,我假设我需要确保这仅在“submittedMatches”选项卡上运行,而不是在工作表上的其他选项卡上运行。
【问题讨论】:
标签: javascript google-apps-script