2017-02-04 6 views
0

これは非常にシンプルなはずですが、Google Scriptで解決策が見つからないようです。私はPricelistのSKU(A)へのインポートのSKU(A)のすべてのセルを比較し、一致がある場合は一致するSKUをシート3(A)に貼り付けます。Google Script - 2つの列を比較して一致する場合は、一致する値を貼り付けます

通常、これはインデックス一致で行いますが、Google Scriptで行う必要があります。

私はPricelist A1:A100の全範囲で1つのセル(A81)をチェックするためにこれを試しましたが、範囲に対して範囲をチェックすると意味がありません。

function checkProduct() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var lookup = ss.getRange('Import!A81').getValue(); 
    var range = ss.getRange('Pricelist!A1:A200').getValues(); 
    var lookupRange = []; 

    for (var i = 0; i < range.length; i++) { 
    lookupRange.push(range[i][0]); 
    } 
    var index = lookupRange.indexOf(lookup); 
    if (index == -1) { 
    } 
    else { 
    ss.getRange('Sheet3!A1').setValue('its there'); // need to paste in the matching SKU 
    } 
} 

インポートシート

SKU | Price 
s123 | 99 
s124 | 98 
s125 | 97 

価格表シート

SKU | Price 
s123 | 99 
a111 | 98 
a453 | 97 

答えて

0

これを試してみてください:

function checkProduct() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s=ss.getSheetByName("Import") 
    var lr=s.getLastRow() 
    var lookup = s.getRange(2,1,lr-1,2).getValues(); 
    var s1=ss.getSheetByName("Pricelist") 
    var lr1=s1.getLastRow() 
    var range = s1.getRange(2,1,lr1-1,2).getValues(); 
    var s3=ss.getSheetByName("Sheet3") 
    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],]); 
    }}} 
    s3.getRange(2,1,lookupRange.length,4).setValues(lookupRange); 
} 

私は試合にすべての4つの値をプッシュしています。必要に応じて調整します。

+0

返信いただきありがとうございます。これは理にかなっていますが、このエラーが出ます - TypeError:未定義からプロパティ "0"を読み取ることができません。 (ライン29)。この行はif(lookup [i] [0] == range [j] [0]){' –

+0

です。修正されたコードを試してください。 –

関連する問題