Excel и Google Workspace / Формулы Google Таблиц

Google Sheets: FILTER для точного отбора строк

Функция FILTER возвращает все строки из диапазона, которые удовлетворяют условиям. Это удобно для отфильтрованных отчётов, без ручной сортировки и промежуточных формул. FILTER подходит, когда нужно оставить строки по одному или нескольким условиям без ручного копирования данных.

Опубликовано: Обновлено:

Формула

$$=FILTER(A2:F200, B2:B200="Продажа", C2:C200>0)$$

Обозначения

$range$
исходный диапазон строк
$condition$
логическое условие отбора
$if_empty$
сообщение или пустой результат, если строк нет

Условия применения

  • Диапазон должен быть прямоугольным и иметь одинаковое количество строк в каждом столбце.
  • Каждый критерий должен быть логическим массивом той же высоты, что и фильтруемый диапазон.
  • Если все строки не подходят, функция вернёт #N/A.

Ограничения

  • Функция не поддерживает скрытие дубликатов сама по себе.
  • Требует, чтобы в выходной области не было «занятых» ячеек, иначе вернёт ошибку.
  • Для очень больших массивов может быть медленной без нормальной структуры данных.

Подробное объяснение

FILTER проходит по каждой строке и проверяет логическое условие по всем критериям. Результат выталкивается сразу в виде массива, поэтому удобен для панелей мониторинга и промежуточных витрин данных.

Смысл страницы — показать рабочий сценарий, ограничения и поведение формулы в живой таблице. Например, из таблицы заказов можно вывести только строки со статусом "Оплачен" и суммой больше заданного порога. Пользователь меняет исходную таблицу, а результат автоматически пересчитывается, поэтому страница должна показывать не только синтаксис, но и поведение динамического диапазона. В отличие от простого перечисления аргументов, здесь важно понимать, как формула меняет диапазон результата, что происходит при пустых строках и как она сочетается с другими функциями Google Таблиц.

Как пользоваться формулой

  1. Подготовьте базовый прямоугольный диапазон данных.
  2. Сформулируйте одно или несколько условий и свяжите их через запятую.
  3. Проверьте, чтобы справа/снизу от формулы было свободное место для вывода всего массива.
  4. При пустом результате дополните `IFERROR(..., "Нет данных")`.

Историческая справка

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

Функция рассматривается как часть экосистемы Google Sheets и Google Docs Editors. Исторический блок здесь полезен не как биография автора, а как контекст появления облачных таблиц, совместной работы и динамических массивов, которые изменили привычный способ строить отчеты.

Историческая линия формулы

Документация функции FILTER размещена в официальной справке Google Sheets. У функций Google Таблиц нет корректного единоличного автора. Их развитие связано с продуктовой эволюцией электронных таблиц, SQL-подобных запросов, динамических массивов и облачной совместной работы, поэтому атрибуция описывает технологическую линию, а не персональное открытие.

Пример

При диапазоне A2:F200 и статусе в B и сумме в C формула `=FILTER(A2:F200, B2:B200="Продажа", C2:C200>10000)` покажет только строки продаж свыше 10 000. Например, из таблицы заказов можно вывести только строки со статусом "Оплачен" и суммой больше заданного порога. Пользователь меняет исходную таблицу, а результат автоматически пересчитывается, поэтому страница должна показывать не только синтаксис, но и поведение динамического диапазона.

Частая ошибка

Самые частые ошибки: неверная высота массивов в условиях, ссылками на пустые диапазоны или отсутствие права на spill-вывод — тогда формула ругается. Частая ошибка — передать условие другого размера, чем фильтруемый диапазон. Еще одна проблема возникает, когда FILTER возвращает пустой результат: для пользовательской таблицы лучше заранее обернуть формулу в IFERROR или показать понятное сообщение.

Практика

Задачи с решением

Найти только оплаченные заказы

Условие. В B2:B20 пометка статуса, в C2:C20 — сумма.

Решение. =FILTER(A2:G20, B2:B20="Оплачен")

Ответ. =FILTER(A2:G20, B2:B20="Оплачен")

Найти заказы со статусом «Оплачен» и суммой больше 3000

Условие. B2:B20 — статус, C2:C20 — сумма.

Решение. =FILTER(A2:G20, (B2:B20="Оплачен")*(C2:C20>3000))

Ответ. =FILTER(A2:G20, (B2:B20="Оплачен")*(C2:C20>3000))

Дополнительные источники

  • Google Docs Editors Help: FILTER function - https://support.google.com/docs/answer/3093197?hl=en
  • Google Docs Editors Help: Google Sheets function list - https://support.google.com/docs/table/25273?hl=en
  • Google Docs Editors Help: Google Sheets function list
  • Google Docs Editors Help: function documentation for the corresponding Google Sheets function

Связанные формулы

Excel и Google Workspace

QUERY в Google Таблицах: базовый SELECT

$=QUERY(A1:D100,"select A, C where B = 'Оплачен'",1)$

QUERY выполняет запрос к диапазону Google Таблиц на языке, похожем на SQL. Базовый SELECT выбирает нужные столбцы и строки по условию.

Excel и Google Workspace

Google Sheets: ARRAYFORMULA для массовых вычислений

$=ARRAYFORMULA(IF(B2:B200>0, C2:C200/B2:B200, ""))$

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

Excel и Google Workspace

Google Sheets: SORT для многоуровневой сортировки

$=SORT(A2:G200, 3, TRUE, 2, FALSE)$

С помощью SORT можно сортировать диапазон сразу по нескольким колонкам с отдельным направлением сортировки для каждого ключа. SORT нужен для динамической сортировки диапазона без изменения исходной таблицы.