Оглавление
Если единственным известным вам способом создания фильтра в Google Sheets является стандартный инструмент, у меня есть для вас сюрприз. :) Изучите функцию FILTER вместе со мной. Здесь есть множество готовых формул, которые вы можете позаимствовать, а также новый мощный инструмент, который значительно дополняет набор инструментов фильтрации.
Некоторое время назад мы рассказывали, как фильтровать в Google Sheets с помощью стандартного инструмента. Мы упоминали, как фильтровать по значению и по условию. Однако электронные таблицы всегда содержат больше, чем мы думаем. И на этот раз я собираюсь изучить с вами функцию Google Sheets FILTER.
Вы не найдете его в Excel, поэтому его обязательно стоит проверить.
Синтаксис функции ФИЛЬТР Google Sheets
FILTER в Google Sheets сканирует ваши данные и возвращает необходимую информацию, которая соответствует вашим критериям.
В отличие от стандартного фильтра Google Sheets, эта функция ничего не делает с исходными данными. Она копирует найденные строки и помещает их туда, где вы построите формулу.
Синтаксис довольно прост, поскольку каждый аргумент говорит сам за себя:
=FILTER(range, condition1, [condition2, ...])- ассортимент это данные, которые вы хотите отфильтровать. Требуется.
- условие1 это столбец или строка вместе с критериями TRUE/FALSE, под которые она должна подпадать. Требуется.
- условие2,... , и т.д., обозначают другие столбцы/строки и/или другие критерии. Необязательно.
Примечание. Каждый условие должен быть того же размера, что и ассортимент .
Примечание. Если вы используете несколько условий, все они должны быть либо для столбцов, либо для строк. Функция ФИЛЬТР Google Sheets не допускает смешанных условий.
Теперь, с учетом этих замечаний, давайте посмотрим, как аргументы принимают форму различных формул.
Как использовать функцию FILTER в Google Sheets
Я собираюсь показать вам все примеры, фильтруя небольшую таблицу, в которой я отслеживаю некоторые заказы:
Таблица содержит 20 строк с различными типами данных, что идеально подходит для изучения функции.
Как фильтровать в Google Sheets по тексту
Пример 1. Текст является точным
Сначала я попрошу функцию показать только те заказы, которые опаздывают. Я ввожу диапазон для фильтрации - A1:E20 - и затем установить условие - столбец E должен быть равен Поздно :
=FILTER(A1:E20,E1:E20="Late")
Пример 2. Текст точно не
Я могу попросить функцию получить мне все заказы, кроме тех, которые опоздали. Для этого мне понадобится специальный оператор сравнения (), который означает не равный :
=FILTER(A1:E20,E1:E20"Late")
Пример 3. Текст содержит
Теперь я хочу показать вам, как построить функцию ФИЛЬТР в Google Sheets на основе частичного совпадения. Или другими словами - если текст содержит .
Вы заметили, что идентификаторы заказов в столбце A содержат в конце аббревиатуру страны? Давайте создадим формулу для получения только тех заказов, которые были отправлены из Канады ( CA ).
Обычно для этой задачи используются символы подстановки. Но когда речь идет о формуле FILTER, это функции FIND и SEARCH, которые работают таким образом.
Совет. Если вы хотите избежать вложения других функций при фильтрации по простым встречам слов, воспользуйтесь дополнением, описанным в конце.
Примечание. Если важен регистр текста, используйте FIND, в противном случае выберите SEARCH.
Функция ПОИСКПОЗ подойдет для моего примера, поскольку регистр текста не имеет значения:
=SEARCH(search_for, text_to_search, [starting_at])- поиск_для это текст, который я хочу найти. Очень важно заключить его в двойные кавычки: "ca" . Требуется.
- текст_к_поиску это диапазон для сканирования нужного текста. Требуется. Это A1:A20 для меня.
- начальная_дата указывает начальную позицию для поиска - номер символа, с которого нужно начинать поиск. Это совершенно необязательно, но мне нужно его использовать. Видите ли, все идентификаторы заказов состоят из букв и цифр, что означает, что пара CA может встречаться где-то посередине. Идентичный шаблон всех идентификаторов позволяет мне искать CA начиная с 8-го символа.
Собрав все эти части вместе, я получаю желаемый результат:
=FILTER(A1:E20,SEARCH("ca",A1:A20,8))
Как фильтровать по дате и времени в Google Sheets
Фильтрация по дате и времени также требует использования дополнительных функций. В зависимости от ваших критериев, вам может понадобиться встроить ДЕНЬ, МЕСЯЦ, ГОД или даже ДАТУ и ВРЕМЯ в основную функцию ФИЛЬТР Google Sheets.
Совет. Если вы не знакомы с ними или постоянно путаетесь в датах - не беспокойтесь. Инструмент, описанный в конце, не требует никаких функций.
Пример 1. Дата
Чтобы получить те заказы, которые должны быть выполнены 9 января 2020 года, я приглашу функцию DATE:
=FILTER(A1:E20,C1:C20=DATE(2020,1,9))
Примечание. Это работает, только если ваши ячейки не содержат единицы времени вместе с датой (ваша электронная таблица может добавлять их по умолчанию). Чтобы убедиться в этом, просто выделите ячейку и проверьте, что появится в строке формул:
Если время есть и удалить его не представляется возможным, следует использовать либо QUERY, либо более сложное условие в функции FILTER в Google Sheets, например, так:
=FILTER(A1:E20,C1:C20>=DATE(2020,1,9),C1:C20
Совет. Более подробно о множественных условиях я рассказываю ниже.
Пример 2. Дата содержит
Если вас интересует только конкретный месяц или год, вы можете обойтись функциями MONTH и YEAR. Вставьте диапазон с датами прямо в нее ( C1:C20 ) и укажите номер месяца (или года), которому он должен быть равен ( =1 ):
=FILTER(A1:E20,MONTH(C1:C20)=1)
Пример 3. Дата до/после
Чтобы получить данные, которые приходятся на период до или после указанной даты, вам понадобится функция DATE и такие операторы сравнения, как greater than (>), greater than or equal to (>=), less than (<), less than or equal to (<=).
Здесь представлены заказы, которые были получены 1 января 2020 года и позже:
=FILTER(A1:E20,D1:D20>=DATE(2020,1,1))
Конечно, вы можете легко заменить здесь DATE на MONTH или YEAR. Результат не будет отличаться от приведенного выше:
=FILTER(A1:E20,YEAR(D1:D20)>=2020)
Пример 4. Время
При фильтрации в Google Sheets по времени порядок действий точно такой же, как и при фильтрации по датам. Вы используете дополнительную функцию TIME.
Например, чтобы получить только дни с временной меткой после 14:00, формула будет выглядеть следующим образом:
=FILTER(A1:B10,A1:A10>TIME(14,0,0))
Однако, когда дело доходит до использования функции ЧАС (как и функции МЕСЯЦ для дат), игра немного меняется. Время в электронных таблицах - достаточно сложная задача, поэтому необходимо внести некоторые коррективы.
Чтобы вернуть все строки с временными метками между 2:00 PM и 12:00 PM , сделайте это:
- Окружите диапазон временными метками ( A1:A10 ) в отдельной функции HOUR. Это укажет, где искать.
- Затем добавьте еще одну функцию HOUR для установки самого времени.
=FILTER(A1:B10,HOUR(A1:A10)>=HOUR("2:00:00 PM"))
Совет. Убедитесь, что результат не включает в себя 12:41 PM ? Это потому, что электронная таблица рассматривает его как 00:41 что меньше, чем 2:00 .
Если вы нашли более элегантное решение, пожалуйста, поделитесь им в разделе комментариев ниже.
Как фильтровать в Google Sheets с помощью ссылок на ячейки
Каждый раз, когда вы создаете формулу фильтра Google Sheets, вам нужно вводить условие как есть: слово или его часть, дату и т.д. Если вы не знакомы со ссылками на ячейки.
Они упрощают многие вещи, связанные с формулами. Ведь вместо того, чтобы вводить все подряд, вы можете просто ссылаться на ячейки с помощью условий.
Помните, как я искал все заказы, которые опоздали? Я могу быстро обратиться к E4 с помощью текста Поздно сделать то же самое:
=FILTER(A1:E20,E1:E20=E4)
Результат не будет отличаться ни на йоту:
Вы можете повторить это со всеми вышеупомянутыми формулами. Например, не добавляйте больше функций типа DATE и просто ссылайтесь на ячейку с интересующей вас датой:
=FILTER(A1:E20,C1:C20=C15)
Совет. Ссылки на ячейки также позволяют фильтровать с другого листа. Вам просто нужно указать имя листа:
=FILTER(Orders!A1:E20,Orders!C1:C20=Orders!C15)
Формулы ФИЛЬТРА в Google Sheets с несколькими критериями
Хотя раньше я в основном использовал одно условие во всех формулах фильтрации Google Sheets, более вероятно, что вам понадобится фильтровать таблицу по нескольким условиям одновременно.
Пример 1. Логика IS BETWEEN
Чтобы найти все строки, попадающие между двумя числами/датами/временем, пригодятся дополнительные аргументы функции -... условие2 , условие3 и т.д. Вы просто каждый раз дублируете один и тот же диапазон, но с новым условием.
Послушайте, я собираюсь возвращать только те заказы, которые обошлись мне более чем в 250 долларов, но менее чем в 350 долларов:
=FILTER(A1:E20,B1:B20>=250,B1:B20<350)
Пример 2. Логика ИЛИ в функции ФИЛЬТР Google Sheets
К сожалению, чтобы получить все строки, содержащие разные записи в интересующем нас столбце, предыдущий способ не подходит. Итак, как я могу проверить все заказы, которые находятся в пути и опаздывают?
Если я попробую предыдущий метод и введу каждый статус заказа в отдельное условие, я получу ошибку #N/A:
Таким образом, чтобы правильно задать логику ИЛИ в функции FILTER, я должен суммировать эти два критерия в одном условии:
=FILTER(A1:E20,(E1:E20="Опоздал")+(E1:E20="В пути"))
Добавление фильтра в Google Sheets для нескольких столбцов
Что еще более вероятно, чем применение нескольких условий к одному столбцу, так это создание фильтра в Google Sheets для нескольких столбцов.
Все аргументы одинаковы. Но каждая новая часть формулы требует нового диапазона со своими собственными критериями.
Давайте попробуем сделать так, чтобы функция FILTER в Google Sheets возвращала заказы, которые подпадают под все следующие правила:
- Они должны стоить 200-400 долларов:
A1:E20,B1:B20>=200,B1:B20<=400
- должны быть выполнены в январе 2020 года:
МЕСЯЦ(C1:C20)=1
- И все еще находятся в пути:
E1:E20="в пути"
Соедините все эти части вместе, и ваша формула фильтра Google Sheets для нескольких столбцов готова:
=FILTER(A1:E20,B1:B20>=200,B1:B20<=400,MONTH(C1:C20)=1,E1:E20="on the way")
Способ без формул для расширенного фильтра Google Sheets
Функция FILTER - это здорово, но иногда ее может быть слишком много. Отслеживание всех аргументов, разделителей, вложенных функций и т.д. может быть чрезвычайно запутанным и отнимать много времени.
К счастью, у нас есть лучшее решение, которое превосходит и функцию ФИЛЬТР Google Sheets, и их стандартный инструмент - Множественные совпадения VLOOKUP.
Не путайтесь в названиях. Она похожа на функцию VLOOKUP в Google Sheets, потому что ищет совпадения. Так же, как это делает функция FILTER. Так же, как я сделал выше.
Вот 5 основных преимуществ инструмента над функцией ФИЛЬТР Google Sheets:
- Вам не придется думать о операторы для различных условий - просто выбери ту. из списка:
Я искренне рекомендую вам установить программу Multiple VLOOKUP Matches и попробовать ее в действии. Чтобы поближе познакомиться с ее возможностями, посетите страницу с учебником или посмотрите специальное обучающее видео: