Не уверен, что текущее решение моей проблемы. Возможно, вы хотите исключить лист 1 в сценарии. Но открыты для других решений - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть эта таблица, над которой я работаю: 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 } );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...