Если вы хотите найти много листов, и чтобы избежать необходимости многократного повторения формулы для каждого листа, вы можете вместо этого использовать пользовательскую функцию , созданную в Google Apps Script. Для этого выполните следующие действия:
- В вашей электронной таблице выберите Инструменты> Редактор скриптов , чтобы открыть скрипт, связанный с вашим файлом.
- Скопируйте эту функцию в редакторе сценариев и сохраните проект:
function COUNTMANYSHEETS(sheetNames, range, text) {
sheetNames = sheetNames.split(',');
var count = 0;
sheetNames.forEach(function(sheetName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
var values = sheet.getRange(range).getValues();
values.forEach(function(row) {
row.forEach(function(cell) {
if (cell.indexOf(text) !== -1) count++;
});
});
});
return count;
};
- Теперь, если вы go вернетесь к своей электронной таблице, вы можете использовать эту функцию так же, как и любую другую функция. Вам просто нужно предоставить строку со всеми именами листов, разделенными разделителем, указанным в коде (в данном примере, запятой), другой с диапазоном, который вы хотите найти, и текстом, который вы хотите искать, как вы видите здесь, например:
=COUNTMANYSHEETS("Sheet1,Sheet2,Sheet3", "G3:G1151", "COMPLETE")
Примечания:
- Важно, чтобы вы указали имена листов, разделенные разделителем указано в
sheetNames = sheetNames.split(',');
, и ничего больше (без пробелов после запятой и т. д. c.). - Важно указать диапазон в кавычках (
"G3:G1151"
). В противном случае функция будет интерпретировать это как массив значений, соответствующих указанному диапазону, и вы не сможете искать значения на других листах. - В этом примере код ищет строку
COMPLETE
и учитывает регистр. Чтобы сделать это без учета регистра, вы можете использовать toUpperCase () или toLowerCase () . - Если вы хотите найти все листы в электронной таблице, вы можете измените вашу функцию так, чтобы она принимала только
range
и text
в качестве параметров, и получайте все листы через SpreadsheetApp.getActive().getSheets();
.
Ссылка:
Надеюсь, это поможет.