2017-02-04 9 views
0

Кажется, что это должно быть очень просто, но я действительно не могу найти решение через Google Script. Я хочу сравнить все ячейки в SKU (A) в Import to SKU (A) в прейскуранте, и если есть совпадение, вставьте соответствующие SKU в Sheet 3 (A).Google Script - сравнение двух столбцов и совпадение, вставить соответствующее значение

Обычно я просто делаю это через совпадение индекса, но мне нужно сделать это с помощью Google Script.

Я пробовал следующее, и это работает для проверки одной ячейки (A81) со всем диапазоном в прейскуранте A1: A100, но я не могу это понять при проверке диапазона в диапазоне.

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» из undefined. (строка 29). Эта строка 'if (lookup [i] [0] == range [j] [0]) {' –

+0

Извините, моя ошибка. Попробуйте скорректированный код. –