Гид по технологиям

Функция FILTER в Google Sheets: подробное руководство и практические приёмы

8 min read Spreadsheet Обновлено 11 Apr 2026
Функция FILTER в Google Sheets — руководство
Функция FILTER в Google Sheets — руководство

google sheets filter function

Изображение: интерфейс Google Sheets с примером результата работы функции FILTER на таблице продаж.

Функция FILTER — одна из самых полезных при работе с данными в Google Sheets. В отличие от фильтра в пользовательском интерфейсе, FILTER возвращает массив значений прямо в ячейку формулой, автоматически обновляется при изменении данных и легко комбинируется с другими формулами.

Важно: FILTER “выливается” (spills) — то есть возвращает массив в соседние ячейки автоматически. Не нужно закреплять диапазоны через $ при ожидании вывода массива.

Зачем использовать FILTER: основные сценарии

  • Динамические отчёты и таблицы с выбором региона/категории через выпадающий список.
  • Предварительная фильтрация данных перед дальнейшей агрегацией (SUM, AVERAGE, QUERY и др.).
  • Чистые диапазоны для дашбордов без дополнительной ручной фильтрации.

Синтаксис функции FILTER — обзор

Filter-Function-Syntax

Формат:

FILTER(range, condition1, [condition2, …])

Коротко о каждом аргументе:

  • Range: диапазон ячеек, из которого возвращаются значения (может быть многомерным — несколько столбцов).
  • condition1: логическое выражение (массив TRUE/FALSE) той же высоты или ширины, что и range, указывающее, какие строки/столбцы пройти дальше.
  • [condition2…]: дополнительные логические массивы. Все они применяются как логическое И (AND) между условиями, если передавать их как отдельные аргументы.

Примечание: количество условий не ограничено, но все логические массивы должны совпадать по размеру и ориентации с range.

Пример данных и задача

Sample-Data-For-Filter-Function

Изображение: таблица с колонками State, Grocery Item, Sales, Profit — пример исходного набора данных.

В примере есть продажи и прибыль по продуктам питания в разных штатах. Необходимо дать пользователю возможность выбрать штат из выпадающего списка и видеть столбцы “Grocery Item”, “Sales”, “Profit” только для выбранного штата.

Создание выпадающего списка для условия

  1. Правый клик по ячейке для открытия контекстного меню.

Dropdown-Menu-in-Google-Sheets

Изображение: контекстное меню в Google Sheets с опцией Data validation (Проверка данных).

  1. Откройте раздел “Проверка данных”.

Data-Validation-Option-in-Google-Sheets

Изображение: панель настроек Проверки данных в Google Sheets.

  1. В критериях выберите “Список из диапазона”.

Changing-Criteria-in-Data-Validation-Settings

Изображение: настройка критерия в Проверке данных — выбор “List from a range”.

  1. Укажите диапазон значений (например, A2:A13) — это колонка штатов.

Selecting-a-Data-Range-in-Data-Validation

Изображение: выбор диапазона в поле критерия для создания выпадающего списка.

  1. Сохраните настройки проверки данных.

Saving-Data-Validation-Settings

Изображение: подтверждение сохранения проверки данных.

  1. В результате появится выпадающий список с уникальными значениями из указанного диапазона.

Dropdown-Menu-Created-for-States

Изображение: созданный выпадающий список с названиями штатов.

Теперь можно связать выбранное значение в выпадающем списке с аргументом condition в FILTER.

Реализация FILTER — шаг за шагом

  1. Выберите целевой диапазон, который хотите вывести. В примере это B2:D13 (Grocery Item, Sales, Profit).

Selecting-Range-for-Filter-Function

Изображение: выделение диапазона B2:D13 как аргумента range.

  1. Чтобы диапазон автоматически расширялся при добавлении строк, сделайте его открытым, опуская номер последней строки: B2:D.

Making-Range-Open-Ended-in-Filter-Function

Изображение: пример открытого диапазона B2:D для динамического расширения.

  1. Укажите условие: столбец штата A2:A должен быть равен ячейке с выпадающим списком (например, G5).

Assigning-Condition-for-Condition-Argument-in-Filter-Function

Изображение: выбор столбца A в качестве логического массива для условия.

  1. Пример формулы, которая помещается в, скажем, F8:
=FILTER(B2:D, A2:A = G5)
  1. Нажмите Enter — и таблица заполнится строками, где колонка штат соответствует выбранному значению.

Implementing-The-Filter-Function

Изображение: результат работы FILTER — строки, соответствующие выбранному штату.

Примечание: функция игнорирует строки, где логическое условие даёт FALSE или пустые/невалидные значения.

Пример: выбор Utah

Когда в выпадающем списке выбран “Utah”, выводятся только те строки, где штат — Utah.

Testing-Filtered-Data-for-State-of-Utah

Изображение: фильтр с выбранным штатом Utah и соответствующими результатами.

Фильтрация по нескольким условиям (AND и OR)

AND — логическое И

Чтобы требовать выполнения сразу нескольких условий (например, штат = выбранный и Profit > 5000), добавьте второе условие как отдельный аргумент FILTER. Пример:

=FILTER(B2:D, A2:A = G5, D2:D > 5000)

Это эквивалент логического И: строка пройдет, если оба условия истинны.

Adding-Second-Condition-in-Filter-Function

Изображение: добавление второго условия (прибыль > 5000) в формулу FILTER.

Если Profit для какого-то товара меньше порога, строка не попадёт в результат (в примере прибыль по flour — 1240, она отбрасывается).

Filtering-Data-With-Two-Conditions-For-State-of-Utah

Изображение: результирующая таблица после применения двух условий.

OR — логическое ИЛИ

FILTER не имеет отдельного аргумента OR, но можно использовать арифметические приёмы. Допустим, нужно выбрать строки, где штат Utah или Nevada. Пример:

=FILTER(B2:D, (A2:A = "Utah") + (A2:A = "Nevada") )

Логика: выражения (A2:A = “Utah”) и (A2:A = “Nevada”) дают массивы TRUE/FALSE. При суммировании TRUE трактуется как 1, FALSE как 0; итоговый массив >0 означает, что хотя бы одно выражение истинно.

Если условие — выбор нескольких значений через список, можно строить динамическую проверку с помощью REGEXMATCH для строковых категорий:

=FILTER(B2:D, REGEXMATCH(A2:A, TEXTJOIN("|", TRUE, G5:G7)) )

Где G5:G7 — диапазон с выбранными значениями. Этот подход удобнее для фильтра по нескольким текстовым критериям.

Альтернативы и когда FILTER не лучший выбор

  • QUERY: если вам нужен SQL-подобный синтаксис (GROUP BY, ORDER BY, агрегирование), QUERY часто короче и читаемее.
  • Фильтр интерфейса (Data > Create a filter): удобен для одноразовой работы с таблицей пользователем, но не даёт автоматического обновления в отдельном диапазоне.
  • Сортировка + UNIQUE + VLOOKUP — полезно, когда нужен отдельный список уникальных значений или сопоставления.

Counterexample: если вы хотите получить агрегированные показатели (суммы, средние) сразу по группам, лучше QUERY или комбинация FILTER + SUMIF; одна только FILTER возвращает строки, но не агрегаты.

Частые ошибки и проверки при отладке формул FILTER

  • Несоответствие размеров: все логические массивы должны совпадать по длине и ориентации с range.
  • Пустые/невалидные значения в условиях: пустые строки дают FALSE и исключают запись.
  • Использование относительных ссылок в неожидаемых местах: помните про “спилл” — формула возвращает диапазон; не помещайте её туда, где другие данные блокируют вывод.

Расширенные приёмы и сочетания

  • Объединение с SORT для отсортированного вывода:
=SORT( FILTER(B2:D, A2:A = G5), 2, FALSE)

Сортирует по 2-му столбцу (Sales) по убыванию.

  • Добавление заголовков к выливаемому массиву:
={"Grocery Item","Sales","Profit"; FILTER(B2:D, A2:A = G5)}

Склеивает строку заголовков и массив FILTER.

  • Использование INDEX чтобы выбрать одну строку из результата:
=INDEX( FILTER(B2:D, A2:A = G5), 1, 1)

Вернёт первую строку и первый столбец (первый продукт).

Мини-методология: шаблон внедрения FILTER в отчёт

  1. Определите входной диапазон (master data) и убедитесь в консистентности колонок.
  2. Добавьте контрольные элементы (выпадающие списки, чекбоксы) для выбора критериев.
  3. Постройте базовую формулу FILTER с обязательным условием по первому критерию.
  4. Тестируйте по одному условию; затем добавляйте дополнительные условия (AND/OR).
  5. При необходимости комбинируйте с SORT, UNIQUE, QUERY для итоговой обработки.
  6. Создайте набор тест-кейсов (см. ниже) и автоматизируйте резервную копию листа перед массовыми изменениями.

Test cases и критерии приёмки

Критерии приёмки для реализации:

  • При выборе любого существующего штата в выпадающем списке выводятся только соответствующие строки.
  • При пустом выборе (пустая ячейка) FILTER возвращает пустой диапазон или заданную пользователем альтернативу.
  • При добавлении новых строк с тем же форматом данные автоматически появляются в результатах (при открытом диапазоне).
  • При изменении порогов (например, Profit > 5000) результирующий набор корректно сужается.

Рекомендуемые тест-кейсы:

  • Выбрать штат с несколькими записями — проверить, что все строки видны.
  • Выбрать штат без записей — проверить, что вывод пустой или появляется сообщение “Нет данных” (с помощью IFERROR).
  • Добавить новую строку в мастер-таблицу — проверить, что она появилась в выводе при совпадающих условиях.

Чеклист для ролей

Владелец отчёта:

  • Проверить, что диапазоны открыты и корректны.
  • Убедиться в наличии уникальных значений для выпадающих списков.

Аналитик/редактор данных:

  • Проверить формат чисел (Sales/Profit) и отсутствие текстовых артефактов.
  • Обновить справочные диапазоны и убедиться, что проверка данных ссылается на правильный диапазон.

Разработчик дашборда:

  • Добавить обработку ошибок: IFERROR(FILTER(…), {“Нет данных”}).
  • Защитить область вывода от случайного редактирования.

Decision tree: выбрать FILTER или альтернативы

flowchart TD
  A[Нужен фильтр данных?] --> B{Нужна ли агрегация}
  B -- Да --> C[Используйте QUERY или SUMIF]
  B -- Нет --> D{Нужна ли интерактивность с выпадающими списками}
  D -- Да --> E[Используйте FILTER + Data validation]
  D -- Нет --> F[Фильтр интерфейса или FILTER]
  C --> G[QUERY предпочтительнее]
  E --> H[Добавьте SORT/UNIQUE по необходимости]
  F --> H

Полезные приёмы и шаблоны (cheat sheet)

  • Фильтр с обработкой ошибок и сообщением “Нет данных”:
=IFERROR( FILTER(B2:D, A2:A = G5), {"Нет данных"} )
  • Фильтр с динамическим списком нескольких значений (через REGEXMATCH):
=FILTER(B2:D, REGEXMATCH(A2:A, TEXTJOIN("|", TRUE, G5:G10)) )
  • OR через суммирование логик:
=FILTER(B2:D, (A2:A = "Utah") + (A2:A = "Nevada") )
  • AND через умножение (иногда полезно для численных условий):
=FILTER(B2:D, (D2:D > 5000) * (C2:C > 10000) )

Производительность и масштаб

  • FILTER выполняется быстро на умеренных наборах данных (до нескольких десятков тысяч строк). При очень больших таблицах и сложных регулярных выражениях стоит рассмотреть BigQuery, Apps Script или артефакты предварительной агрегации.
  • Для уменьшения нагрузки избегайте массивных volatile-функций (например, INDIRECT в больших объёмах).

Безопасность и приватность

Функция FILTER работает локально в документе Google Sheets. Если в листе есть персональные данные, убедитесь в настройках доступа к документу (Share), используйте ограничения доступа и при необходимости — анонимизацию данных.

1‑строчный глоссарий

  • Spill: автоматическое заполнение соседних ячеек результатом массивной формулы.
  • ARRAY: в контексте Sheets — набор значений в диапазоне, который может быть возвращён формулой.
  • QUERY: функция, позволяющая писать запросы в стиле SQL по диапазонам в Sheets.

Быстрая сводка (fact box)

  • Когда использовать FILTER: интерактивные отчёты, динамические диапазоны, предобработка перед агрегированием.
  • Альтернатива для агрегации: QUERY.
  • Ключевые ошибки: несоответствие размеров массивов, блокировка спилла, текст в числовых колонках.

Заключение

Функция FILTER — надёжный инструмент для создания динамичных и управляемых отчётов в Google Sheets. Она проста в базовом использовании и гибка для решения сложных задач через комбинирование с другими функциями и контролами интерфейса. Для сложных агрегатов и больших объёмов данных рассмотрите QUERY или внешние инструменты, но для повседневной аналитики FILTER обычно даёт оптимальный баланс простоты и мощности.

Важно: тестируйте формулы на небольших участках данных, контролируйте размеры логических массивов и добавляйте обработку ошибок, чтобы отчёты были устойчивыми.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Обход бинарного дерева: inorder, preorder, postorder
Алгоритмы

Обход бинарного дерева: inorder, preorder, postorder

Анимация Illustrator в After Effects: полный гид
Motion Design

Анимация Illustrator в After Effects: полный гид

Случайные движущиеся объекты в Pygame
Разработка игр

Случайные движущиеся объекты в Pygame

Как настроить мышь в Windows 11
Windows

Как настроить мышь в Windows 11

CHOOSE в Excel: выбрать значение по индексу
Excel

CHOOSE в Excel: выбрать значение по индексу

Жирный и курсив в LinkedIn: как и когда
Social Media

Жирный и курсив в LinkedIn: как и когда