![](/img/trans.png)
[英]Showing results for an non-matching string in Google Maps API Autocomplete
[英]What's the best way to compare two columns of data in Google Sheets and output ONLY the non-matching using Google Scripts?
我有两列类似的唯一数据(A 列和 B 列),在第三列(C 列)上,我想要 output 数据,它在 B 列中,但不在 A 列中。
我想在 Google Scripts 中这样做,并尝试编写自己的 if 语句,循环它但没有运气。
有人可以指出我正确的方向吗?
我实际上在工作时使用的工作表上做同样的事情。 它查看 Col A 和 Col C,来自 Col A 的那些不在 Col C 中的将出现在 Col E 中。
function onOpen() {
SpreadsheetApp.getUi().createMenu("CD Report")
.addItem("Agreement Report", "agreementReport")
.addToUi();
}
function agreementReport(){
var as = SpreadsheetApp.getActive();
var sheet = as.getSheetByName("15-16 1:1 agreement");
var handedIn = sheet.getSheetValues(2, 1, sheet.getLastRow(), 1);
var stuNames = sheet.getSheetValues(2, 3, sheet.getLastRow(), 1);
var list = [];
for (i in stuNames){
var curName = stuNames[i][0];
var exists = false;
for (j in handedIn){
var curCheck = handedIn[j][0];
if (curCheck == curName){
exists = true;
break;
}
} // end for j
if (exists == false){
list.push([curName]);
}
} // end for i
sheet.getRange(2, 5, list.length, 1).setValues(list);
} // end agreementReport
作为对上述答案的补充,我认为突出显示的代码可以帮助刚接触编程的人更好地理解朋友的代码的作用。 因为我发现了导致此检查失败的简单副作用。 需要检查出现次数最多的列表,并在内部循环中与较小的列表进行比较。 只是补充并使代码更通用一些。
/** @OnlyCurrentDoc */
function onOpen() {
SpreadsheetApp.getUi().createMenu("CD Report")
.addItem("Agreement Report", "agreementReport")
.addToUi();
}
function agreementReport(){
var plan = SpreadsheetApp.getActive();
var sheet = plan.getSheetByName("contatos1");
///GREB ALL VALUES FROM THE SMALLER COLUMN
var columnB = sheet.getSheetValues(2, 2, sheet.getLastRow(), 1);
///GREB ALL VALUES FROM THE GREATER COLUMN
var columnA = sheet.getSheetValues(2, 1, sheet.getLastRow(), 1);
var list = [];
for (i in columnA){/*START BUFF THE GREATER COLUMN*/
var curName = columnA[i][0];
var exists = false;
/*START BUFF THE smaller COLUMN AND chack if all occurency in the greater column*/
for (j in columnB){
var curCheck = columnB[j][0];
if (curCheck == curName){
exists = true;
break;
}
} // end for j
if (exists == false){
list.push([curName]);
}
} // end for i
//Logger.log(list.length);
sheet.getRange(2, 3, list.length, 1).setValues(list);
//Logger.log(list);
} // end agreementReport
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.