Фильтры в Гугл Таблице — скрипт автообновления диапазонов
Инструкция

Фильтры в Гугл Таблице — скрипт автообновления диапазонов

Мы ведь смотрим на данные в таблице, чтобы прийти к каким-то выводам на их основе, правильно? И, как правило, хотим увидеть как одни показатели влияют на другие, выявить новые взаимосвязи или какие-то критические значения.

Каждому ясно что, чтобы посмотреть как, например, идут продажи конкретного товара – нужно убрать данные о других. Это позволит сосредоточиться на нужном товаре и не ошибиться в выводах.

Один из удобных инструментов в таблицах – это фильтрация, то есть возможность быстро и просто отобразить только те данные из таблицы, которые соответствуют набору условий. В несколько кликов мышкой можно рассмотреть данные под разными углами, добавляя или убирая те, или иные показатели. Да, на данные нужно смотреть всегда с нескольких сторон. И тут на помощь приходят filter views (представления фильтров, сохраняемые, временные, индивидуальные и как только их еще не называют), главная функция которых – сохранить набор условий для фильтрации и быстрое переключение между ними. А еще, что не менее важно в условиях того, что таблицы являются инструментом многопользовательским – сохраняемые фильтры не мешают работе других пользователей, то есть я могу включить свой фильтр, другой пользователь свой и при этом мы не будем мешать работать с таблицей третьему. Такое часто бывает, когда менеджерам нужно работать со своими клиентами и им мешают остальные.

Создание временного фильтра в гугл таблице

Вот так создаются индивидуальные фильтры (filter views).

Когда такой фильтр включен у пользователя, то видно характерную рамку, данные фильтра, его название и диапазон, на который распространяется фильтр views.

Когда такой фильтр включен у пользователя, то видно характерную рамку, данные фильтра, его название и диапазон, на который распространяется фильтр views.

Но и есть и не совсем приятные моменты. Когда создается новый фильтр, он распространяется на определенный диапазон данных, при этом новые строки в фильтрацию не попадают. И, как правило, это становится очень неожиданным сюрпризом, некоторых вводит в ступор и недоумение, а кого-то приводит к неправильным выводам с соответствующими последствиями. Для восстановления работы фильтра нужно открыть его и вписать новый диапазон, в который попадут все данные.

Для решения этой проблемы я написал небольшую функцию-скрипт, который обновляет диапазоны всех, сохраненных на указанном листе таблицы, фильтров до актуального состояния. А чтобы об этой проблеме не вспоминать – настроил запуск этой функции при открытии таблицы и при нажатии на кнопку.

function updatedFiltersRange() {
    const ss = SpreadsheetApp.getActive();
    const ordersSheetName = 'ЗАКАЗЫ'; //Здесь нужно указать свой лист
    const sheet = ss.getSheetByName(ordersSheetName);
    const sheetsLastRow = sheet.getLastRow();
    const ssId = ss.getId();

    const updatedFilterViews = Sheets.Spreadsheets.get(ssId)
        .sheets.find(sheet => sheet.properties.title == ordersSheetName)
        .filterViews
        .reduce((acc, filterView) => {
            filterView.range.endRowIndex = sheetsLastRow;
            acc.push({
                'updateFilterView': {
                    filter: filterView, fields: 'range'
                }
            });
        return acc
    }, []);

  Sheets.Spreadsheets.batchUpdate({ requests: updatedFilterViews }, ssId)
  ss.toast('Диапазон всех фильтров обновлен.');
  return true
}

Итак, для того чтобы не задумываться о том, что в фильтр попадут ненужные строки, нужно просто добавить этот скрипт в таблицу, заменить имя листа на своё, а затем настроить запуск по времени или по событию открытия таблицы (инструкция как запускать гугл скрипт автоматически) или просто добавить кнопку для запуска скрипта (инструкция).

Читайте также

Не хотите разбираться сами?

Если читали статью и поняли, что руками уже не справляетесь — напишите. Оценим задачу бесплатно и предложим решение.

Как автоматизация окупается → Чеклист: 7 процессов для автоматизации →

Google Products Expert в команде
4 000+ участников сообщества

Нужна помощь с автоматизацией?

Разработаем решение под ваши задачи — от скрипта до полноценной интеграции.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками