什么'这是比较Google Sheets中两列数据并使用Google脚本仅输出不匹配数据的最佳方法
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列),我想输出数据,数据在B列,但不在A列。
我想在谷歌脚本中做到这一点,并尝试编写自己的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
相关文章:
- 通过内部数组将JSON数据导入D3.js+Google Map
- Google Chrome扩展在本地保存数据
- 加载Google MAPS API v3的JSON数据
- 仅显示 Google 表格中来自 api 调用的最新数据行
- 从 Google 云端硬盘请求文件元数据时缺少“downloadUrl”参数
- Google Analytics(分析)多跟踪帐号维度数据部分未显示在报告中
- 如何在 Google App Engine 上存储 HTML 5 地理位置数据
- Google Gauge(数据图表可视化)未加载到ajax调用的页面中
- 对象文字数据表中的 Google 可视化样式角色
- 如何使用promise获取Google Places数据
- 绘制的节点和Google图表/可视化中的数据节点之间的关系
- getSheetValues未返回数据Google脚本
- 在addListener中传递google事件数据
- Google可视化API中的逗号分隔数据
- Salesforce.com和Google图表API数据查询
- Google Fusion API和显示所有数据的问题
- Google图表:轴#0的数据列不能为字符串类型
- Spring MVC与Google图表,创建javascript数据表的最佳方式是什么
- Node.js中的Google数据存储.lookup没有返回任何结果
- 在Google's数据层地图上添加范围滑块来过滤数据