比较Google电子表格中的行 [英] compare rows on google spreadsheets

查看:85
本文介绍了比较Google电子表格中的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在同一电子表格的两张不同工作表中标识相同的行。

  function getMyEqualRows()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];

var sheetOneValues = sheet1.getRange('A1:G20')。getValues();
var sheetTwoValues = sheet2.getRange('A1:G20')。getValues();
var equalRows = []; (var i = 0; i <= sheetOneValues.length; i ++){
for(var j = 0; j <= sheetTwoValues.length; j ++){
if(sheetOneValues [i] == sheetTwoValues [j]){
equalRows.push(sheetOneValues [i]);
}
}
return equalRows;



$ div $解析方案

你无法比较两个数组 == 是否相等。相反,您可以使用 .join()方法。它将这些数组中的所有元素连接到一个字符串。这个检查字符串数组是否相等。

 函数getMyEqualRows()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];

var sheetOneValues = sheet1.getRange('A1:G20')。getValues();
var sheetTwoValues = sheet2.getRange('A1:G20')。getValues();

var equalRows = [];

for(var in sheetOneValues)
{
var anEqualRow = false;
for(var j in sheetTwoValues)
{
if(sheetOneValues [i] .join()== sheetTwoValues [j] .join()){
anEqualRow = true;
}
}
if(anEqualRow){
equalRows.push(sheetOneValues [i]);
}
}
return equalRows;
}

希望这可以奏效!


I want to identify equal rows in two different sheets on same spreadsheet. I tried below code, it doesn't work.

function getMyEqualRows()
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet1 = ss.getSheets()[0];
 var sheet2 = ss.getSheets()[1];

 var sheetOneValues = sheet1.getRange('A1:G20').getValues();
 var sheetTwoValues = sheet2.getRange('A1:G20').getValues();
 var equalRows = [];

 for (var i = 0; i <= sheetOneValues.length; i++) {    
  for(var j = 0; j <= sheetTwoValues.length; j++){
   if(sheetOneValues[i] == sheetTwoValues[j]) {
   equalRows.push(sheetOneValues[i]);
   }
  }
 return equalRows;
 }
}

解决方案

You can't compare two arrays for equality with ==. Instead you can use .join() method. It concatenates all elements in these arrays to a string. This check string arrays for equality. I'm not sure if this is the best way.

function getMyEqualRows()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheets()[0];
  var sheet2 = ss.getSheets()[1];

  var sheetOneValues = sheet1.getRange('A1:G20').getValues();
  var sheetTwoValues = sheet2.getRange('A1:G20').getValues();

  var equalRows = [];

    for(var i in sheetOneValues)
    {
     var anEqualRow = false;
     for(var j in sheetTwoValues)
     {
      if(sheetOneValues[i].join() == sheetTwoValues[j].join()){
        anEqualRow = true;
      }
     }
     if(anEqualRow){
      equalRows.push(sheetOneValues[i]);
     }
   } 
  return equalRows;
}

Hope this would work!

这篇关于比较Google电子表格中的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆