Поиска значения в нескольких Таблицах и сохранение результатов поиска
Есть несколько таблиц Google Sheets, в которых необходимо производить поиск какого-либо значения и возвращать результаты поиска (строками) одну из таблиц В одном примере, нашел такую функцию
var all = SpreadsheetApp.openById().getSheetByName('').createTextFinder().findAll();
for (var i = 0; i < all.length; i++) {
Logger.log(
'The sheet %s, cell %s, has the value %s.',
all[i].getSheet().getName(),
all[i].getA1Notation(),
all[i].getValue()
);
}
Она работает и записывает в Logger.log. Но никак не могу понять, как записывать результаты поиска в какую-либо таблицу.
Ответы (1 шт):
Например, вот так
function myFunction() {
var all = SpreadsheetApp.openById('')
.getSheetByName('In')
.createTextFinder('')
.findAll();
var sheetOut = SpreadsheetApp.openById('').getSheetByName('Out');
const values = [];
for (var i = 0; i < all.length; i++) {
Logger.log(
'The sheet %s, cell %s, has the value %s.',
all[i].getSheet().getName(),
all[i].getA1Notation(),
all[i].getValue()
);
const row = [all[i].getSheet().getName(), all[i].getA1Notation(), all[i].getValue()];
values.push(row);
}
sheetOut.clearContents().getRange(1, 1, values.length, values[0].length).setValues(values);
}
Тут поиск для одного листа. Если нужно для нескольких, то необходимо повторить процедуру для каждого в цикле, а вместо sheetOut.clearContents().getRange(1, 1, использовать sheetOut.getRange(sheetOut.getLastRow() + 1, 1,, не забыв сначала очистить лист для результатов.
Пример https://docs.google.com/spreadsheets/d/1M-aPe8XubmrPMJu33JrPGyOc-jR8IVfo6Gza4VMi6fM/edit?usp=sharing