
[英]Compare sheet 1 to sheet 2 and output to sheet 3. Google sheets. JavaScript
[英]Copy row if value exists in both sheet 1 and sheet 2 and paste it to sheet 3. Google Sheets. Google Apps Script
我的腳本的一部分需要幫助。 我在第一張紙上有大量導入的數據列表,其中一列有電話號碼列表。 我想將該列電話號碼與工作表 2 中的一組數字列表進行比較。如果有匹配的數字,請將整行從工作表 1 復制到工作表 3。這是我目前所擁有的。
function copyRowtoSheet3() {
var s1 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet1');
var s2 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet2');
var s3 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet3');
var values1 = s1.getDataRange().getValues();
var values2 = s2.getDataRange().getValues();
var resultArray = [];
for(var n=0; n < values1.length ; n++){
var keep = false;
for(var p=0; p < values2.length ; p++){
Logger.log(values1[n][0]+' =? '+values2[p][0]);
if( values1[n][0] == values2[p][0] && values1[n][1] == values2[p][1]){
resultArray.push(values1[n]);
Logger.log('true');
//break ;
}
}
}
s3.getRange(+1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}
我現在所擁有的有點有效,但是它並不完美,因為它似乎只是從第一張紙中復制數字,而不是整行,或者根本不起作用。 我經常收到此錯誤,但並非總是如此。 類型錯誤:無法讀取未定義的屬性“長度”(第 19 行,文件“代碼”)不太確定我做錯了什么。 這里的任何建議都會有所幫助。 作為參考,這是我的工作表的外觀以及我希望此代碼執行的操作。
Sheet1
Name Phone Number
John 2142354696
Virge 2345678901
Jason 2412305968
Tiffany 1304086932
Sheet2
Phone Numbers
2142354696
2412305968
Sheet3
John 2142354696
Jason 2412305968
它的工作原理,只有當整個行是類似的,因為If
你是比較兩個工作表的兩列的值。
如果在 sheet1 中電話號碼在第二列中,而在 sheet2 中電話號碼在第一列中,正確的做法是比較 sheet1 [row N] [column 1] == sheet2 [row N] [column 0]。 這是唯一要進行的比較,只有感興趣的細胞。
保留所有代碼,只需將If
行更改為:
if( values1[n][1] == values2[p][0] ){
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.