У меня есть эта таблица, над которой я работаю: https://docs.google.com/spreadsheets/d/1DQ4UMP4imUE0j5wHxFbnC0zVdCnfCXQRF9y9H3Lrxps/edit?usp=sharing
В настоящее время в ней четыре листа. Я буду добавлять лист к этому еженедельно. Первый лист настроен как основной или сводный лист, содержащий данные (имена и фамилии) с каждого другого листа.
Я запускаю сценарий, который в настоящее время указывает всем листам на автоматическую сортировку определенных столбцов и диапазонов. при вводе в алфавитном порядке (имя и фамилия). В частности, эти столбцы: A, B, D и E. Сам скрипт отлично работает для выполнения sh автоматической сортировки.
Что я пытаюсь сделать дальше, это получить имена и фамилии каждого листа для автоматического заполнения сводной таблицы (лист 1), чтобы у меня был основной список (сводка) имен и фамилий.
Но вот где это становится сложным, и я сталкиваюсь с проблемами. Я бы хотел, чтобы на листе «Сводка», лист 1, не только автоматически сортировались имена и фамилии в алфавитном порядке, как и на других листах (что он и делает в настоящее время), но мне также нужно было удалить дублирующиеся имена по мере их поступления. в разных листах.
Формула, которую я использовал для сбора данных с разных листов, в настоящее время настроена как массив, и я не смог найти способ удалить дубликаты с помощью функции UNIQUE, потому что она сообщает мне об этом ищет только 1 аргумент, но у меня есть несколько диапазонов данных, поступающих со всех разных листов.
Я думал, что могу просто вручную "отсортировать диапазон" в сводной таблице, лист 1, но из-за сценария I работаю, которая влияет на все листы в данный момент, если я пытаюсь выбрать «диапазон сортировки» на сводном листе, лист 1, он не работает должным образом.
Надеюсь, это имеет смысл, и спасибо заранее за любую помощь, которую вы можете предоставить. Вот мой текущий сценарий.
/**
* Automatically sorts the 1st column (not the header row) Ascending.
*/
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 2;
var tableRange = "A4:C102"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
var columnToSortBy = 5;
var tableRange = "D4:F102"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
var columnToSortBy = 13;
var tableRange = "L6:P19"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
var columnToSortBy = 9;
var tableRange = "H25:P59"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
var columnToSortBy = 9;
var tableRange = "H68:P102"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
}