【发布时间】:2019-05-18 21:25:55
【问题描述】:
我有两张表,一张是镜像表“Sheet2”,我用它来存储另一张表“Sheet1”的值。我的目标是有一个函数比较两张纸的差异。我能想到的最好方法是将Sheet1中的A列与Sheet2中的A列进行比较。我发现了一些比较两列的函数,但它确实从一列中查找值并在另一列中找到它。或者通过返回那些具有匹配值的单元格中的所有值,无论它在哪一行。但我不希望单元格中的值,必然。我想找到两列停止匹配的第一行。我对 Javascript 还很陌生,所以我仍然无法理解整个 for (var j = 0; j < range.length; j++) 的东西。
但我确信我需要知道如何将它用于我需要的这个功能。这是我尝试使用的方法,但它没有给我行范围,而是给了我一个相同的值数组,如果我将其更改为 if(lookup[i][0]!==range[j][0]){ 它给了我所有不匹配的可能组合。这是来自stackoverflow.com/questions/42044903
function findDifference() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName("Sheet1")
var lr=s.getLastRow()
var lookup = s.getRange(2,1,lr-1,2).getValues();
var s1=ss.getSheetByName("Sheet2")
var lr1=s1.getLastRow()
var range = s1.getRange(2,1,lr1-1,2).getValues();
var lookupRange = [];
for (var i = 0; i < lookup.length; i++) {
for (var j = 0; j < range.length; j++) {
var test=lookup[i][0]
if(lookup[i][0]!==range[j][0]){
lookupRange.push([range[j][0],range[j][1],lookup[i][0],lookup[i][1],]);
}}}
s1.getRange(10,1,lookupRange.length,4).setValues(lookupRange);
}
我觉得我正在尝试做的事情已经存在一个非常相似的功能,但我似乎无法找到它或想出它是如何工作的,因为我是新手并且不知道所有的把戏。 比如:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s1=ss.getSheetByName("Sheet1")
var s2=ss.getSheetByName("Sheet2")
var ColumnA1 = s1.getRange('A:A').getValues()
var ColumnA2 = s2.getRange('A:A').getValues()
var Row = Function()
///Some function I can't think of using where
if(ColumnA1 + Row !== ColumnA2 + Row){
???.getRow()
}
【问题讨论】:
标签: javascript google-apps-script google-sheets