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

FILTER в Google Sheets с несколькими условиями

FILTER возвращает только те строки диапазона A2:D20, где статус в B2:B20 равен "Оплачен", а сумма в D2:D20 больше 1000. Результат разливается на лист как динамический массив.

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

Формула

$$=FILTER(A2:D20,B2:B20="Оплачен",D2:D20>1000)$$

Обозначения

$A2:D20$
исходный диапазон строк, которые нужно вернуть
$B2:B20="Оплачен"$
первое условие: статус строки должен быть "Оплачен"
$D2:D20>1000$
второе условие: сумма строки должна быть больше 1000

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

  • Каждый диапазон условия должен соответствовать количеству строк в фильтруемом диапазоне.
  • Рядом и ниже ячейки с формулой должно быть достаточно пустого места для вывода результата.
  • Если нет ни одной подходящей строки, Google Sheets возвращает ошибку #N/A, которую можно обработать IFERROR.

Ограничения

  • FILTER не изменяет исходные данные, а выводит отдельную динамическую выборку.
  • Если область вывода занята, появится ошибка разлива массива.
  • Для сложной сортировки и группировки после фильтрации может понадобиться сочетание FILTER с SORT или QUERY.

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

FILTER берет исходный диапазон A2:D20 и проверяет для каждой строки заданные логические массивы. В этой формуле таких массива два: статус оплаты и сумма заказа.

Условия соединяются как логика И. Строка появится в результате только тогда, когда статус равен "Оплачен" и сумма одновременно больше 1000.

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

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

Если нужно сразу упорядочить результат, FILTER часто вкладывают в SORT. Если нужно выбрать столбцы, переименовать их или выполнить условия на языке запросов, вместо FILTER удобно использовать QUERY.

Если нужно условие ИЛИ, логические массивы обычно складывают или используют отдельную конструкцию, а для условия И их передают как отдельные аргументы. Важно, чтобы каждый массив условия имел ту же высоту, что и исходный диапазон. Если ниже ячейки с формулой уже есть данные, Google Sheets не сможет разлить результат и покажет ошибку.

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

  1. Выберите диапазон строк, которые должны попасть в выборку.
  2. Добавьте первое условие с такой же высотой, как исходный диапазон.
  3. Добавьте второе условие через следующий аргумент FILTER.
  4. Оставьте место для разлива результата.
  5. При необходимости оберните формулу в IFERROR для случая пустой выборки.

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

Google Sheets с самого начала развивались как облачные таблицы с сильным упором на совместную работу и динамические диапазоны.

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

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

Подход с динамическими массивами позднее стал общим направлением развития современных электронных таблиц, включая новые версии Excel.

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

Пример

Дано: A2:D5 содержит заказы. В B2:B5 статусы: Оплачен, Новый, Оплачен, Оплачен. В D2:D5 суммы: 900, 2500, 1800, 7000. Формула =FILTER(A2:D5,B2:B5="Оплачен",D2:D5>1000) вернет строки 4 и 5 исходной таблицы, потому что только они оплачены и имеют сумму больше 1000. Результат: две строки с суммами 1800 и 7000. Проверка: строка со статусом «Новый» не попадает в вывод даже при сумме 2500, потому что второе условие выполнено, а первое нет. Если изменить формулу на =FILTER(A2:D5,D2:D5>1000), вернутся уже три строки: 900 останется ниже порога, а статус перестанет учитываться. Так видно, что каждый дополнительный логический массив сужает выборку.

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

Частая ошибка в Google Sheets: оставить данные под ячейкой с формулой, из-за чего FILTER не может разлить результат. Вторая ошибка: использовать диапазон условия другой высоты, например B2:B100 при исходном A2:D20. Третья ошибка: сравнивать текст с лишними пробелами или разным регистром. Если подходящих строк нет, это не означает поломку формулы, но для аккуратного отчета лучше добавить IFERROR.

Практика

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

Отобрать оплаченные крупные заказы

Условие. B2:B4 содержит Оплачен, Новый, Оплачен. D2:D4 содержит 1500, 3000, 800. Нужно вернуть строки со статусом Оплачен и суммой больше 1000.

Решение. Формула FILTER проверит обе строки со статусом Оплачен, но строка с суммой 800 не пройдет второе условие.

Ответ. Вернется только строка с суммой 1500

Скрыть ошибку пустой выборки

Условие. В таблице нет оплаченных заказов больше 1000, но в отчете нужно показать текст "Нет строк".

Решение. Используйте =IFERROR(FILTER(A2:D20,B2:B20="Оплачен",D2:D20>1000),"Нет строк").

Ответ. Нет строк

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

  • 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
  • Dan Bricklin: VisiCalc and the origins of spreadsheets - https://www.bricklin.com/visicalc.htm

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

Excel и Google Workspace

UNIQUE в Google Sheets для списка без повторов

$=UNIQUE(A2:A100)$

UNIQUE возвращает список уникальных значений из диапазона A2:A100 в том порядке, в котором они впервые встречаются. Функция помогает быстро получить справочник клиентов, товаров, городов или категорий из длинной таблицы.

Excel и Google Workspace

SORT в Google Sheets для сортировки диапазона

$=SORT(A2:D20,4,FALSE)$

SORT возвращает строки диапазона A2:D20, отсортированные по четвертому столбцу в порядке убывания. Исходная таблица не меняется, а результат выводится как отдельный динамический массив.

Excel и Google Workspace

QUERY в Google Sheets с условием where

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

QUERY выбирает из диапазона A1:D20 только столбцы A и D для строк, где столбец B равен "Оплачен". Последний аргумент 1 сообщает функции, что в исходном диапазоне есть одна строка заголовков.

Excel и Google Workspace

IMPORTRANGE в Google Sheets для данных из другого файла

$=IMPORTRANGE("spreadsheet_url","Лист1!A1:D20")$

IMPORTRANGE импортирует диапазон Лист1!A1:D20 из другой таблицы Google Sheets. В первом аргументе указывают ссылку или ключ файла, во втором аргументе указывают имя листа и диапазон.