Excel и Google Workspace / Формулы Google Таблиц
FILTER в Google Sheets с несколькими условиями
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 не сможет разлить результат и покажет ошибку.
Как пользоваться формулой
- Выберите диапазон строк, которые должны попасть в выборку.
- Добавьте первое условие с такой же высотой, как исходный диапазон.
- Добавьте второе условие через следующий аргумент FILTER.
- Оставьте место для разлива результата.
- При необходимости оберните формулу в 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 в том порядке, в котором они впервые встречаются. Функция помогает быстро получить справочник клиентов, товаров, городов или категорий из длинной таблицы.
Excel и Google Workspace
SORT в Google Sheets для сортировки диапазона
SORT возвращает строки диапазона A2:D20, отсортированные по четвертому столбцу в порядке убывания. Исходная таблица не меняется, а результат выводится как отдельный динамический массив.
Excel и Google Workspace
QUERY в Google Sheets с условием where
QUERY выбирает из диапазона A1:D20 только столбцы A и D для строк, где столбец B равен "Оплачен". Последний аргумент 1 сообщает функции, что в исходном диапазоне есть одна строка заголовков.
Excel и Google Workspace
IMPORTRANGE в Google Sheets для данных из другого файла
IMPORTRANGE импортирует диапазон Лист1!A1:D20 из другой таблицы Google Sheets. В первом аргументе указывают ссылку или ключ файла, во втором аргументе указывают имя листа и диапазон.