2017-02-14 12 views
0

Я хочу сравнить буксировки разных столбцов в двух разных таблицах. Моя первая электронная таблица с именем «testtabelle», а другой называется «тест» название листов являются «Tabellenblatt1» Я хочу, чтобы сравнить столбец A @testtabelle с колонки A @тест. Если строка равна, мне нужно значение из столбца B @test и скопировать его в столбец b @testtabelle той же строки, где мои строки совпадают. Мне кажется, мне нужно два цикла для каждого столбца и оператор if для сравнения значений.сравнить два столбца в разных таблицах в скрипте Google

Буду рад, если кто-то может мне помочь!

+1

Пожалуйста, укажите только те теги, которые «действительно связаны» с вопросом, а также добавьте краткое описание вашего поиска/исследований, сделанных до сих пор. Для получения дополнительной информации проверьте [ask]. –

+2

Вам не нужен код, на мой взгляд, мог бы сделать то же самое с функцией importRange и vlookup в googleSheets. –

ответ

0

Вы можете использовать класс SpreadsheetApp, чтобы открыть несколько листов. Посмотрите openById или openByUrl, либо он должен работать. Затем вы можете создать два объекта электронных таблиц, получить значения столбцов A и B каждого из них, выполнить итерацию для сравнения и скопировать значение столбца B, если совпадают значения столбца A.

Следует отметить, что вы должны использовать getValue и setValue, а не copyTo, так как я не думаю, что последний работает через отдельные электронные таблицы.

Вы должны закончить с чем-то вроде этого:

// gets spreadsheet A and the range of data 
 
ssA = SpreadsheetApp.openById('ID of spreadsheet A'); 
 
sheetA = ssA.getSheetByName('name of sheet in ssA'); 
 
dataA = sheetA.getRange('A:B').getValues(); 
 
// gets spreadsheet B and the range of data 
 
ssB = SpreadsheetApp.openById('ID of spreadsheet B'); 
 
sheetB = ssB.getSheetByName('name of sheet in ssB'); 
 
dataB = sheetB.getRange('A:B').getValues(); 
 

 
// loops through column A of spreadsheet A & B and compares 
 
for(var i = 0; i > sheetA.getLastRow(); i++){ 
 
    // checks to see if ith value in 2nd row is the same 
 
    if dataA[1][i] == dataB[1][i]{ 
 
    var value = sheetA.getRange(i+1, 2).getValue(); 
 
    // used i+1 because index of range is 1, while index of the data array is 0 
 
    sheetB.getRange(i+1, 2).setValue(value); 
 
    } // end if 
 
} // end i

Там же подобный вопрос ответил here.