FILTER
Фильтрация и отбор данных по заданным условиям
Функция FILTER Таблиц Гугл отображает только те строки или столбцы в диапазоне, которые соответствуют заданным условиям.
Все примеры доступны в Таблице, см. раздел Ссылки.
Описание
Функция FILTER универсальная и очень гибкая. Она очень быстрая и легко читается. Используя такие функции как REGEXMATCH
и MATCH
, можно имитировать работу SQL-подобных запросов типа like
и выбора на основе списка. Это действительно удобно, когда требуется отобрать большое количество данных, не зная конечного числа аргументов в уловии отбора.
Примеры
Данные содержат заданный текст
Заданный текст: ль
=FILTER('Данные'!A2:F;REGEXMATCH('Данные'!B2:B; "ль"))
Данные начинаются с определенной строки
Начинаются на А
=FILTER('Данные'!A2:F;REGEXMATCH('Данные'!B2:B; "^А"))
Данные не начинаются с определенной строки
Не начинаются с А
=FILTER('Данные'!A2:F;REGEXMATCH('Данные'!B2:B; "^[^А]"))
Числа содержат определенную цифру
Содержат цифру 2
=FILTER('Данные'!A2:F;REGEXMATCH(TEXT('Данные'!A2:A; "0"); "2"))
Числа оканчиваются на определенную цифру
Содержат цифру 2
=FILTER('Данные'!A2:F;REGEXMATCH(TEXT('Данные'!A2:A; "0"); "2$"))
Даты только определенного года
Только 2017
год
=FILTER('Данные'!A2:F;REGEXMATCH(TEXT('Данные'!C2:C; "yyyyMMdd"); "2017"))
Даты только определенного месяца
Только 08
месяц (август)
=FILTER('Данные'!A2:F;REGEXMATCH(TEXT('Данные'!C2:C; "yyyy-MM-dd"); "-08-"))
Отбор по счету (по очереди)
Только каждая шестая строка
=FILTER('Данные'!A2:F; NOT(MOD(ROW('Данные'!A2:A)-1; 6)))
Каждая нечетная строка
=FILTER('Данные'!A2:F; ISODD(ROW('Данные'!A2:A)-1))
Данные, которые соответствуют списку
Список находится в I2:I6
=FILTER('Данные'!A2:F;NOT(ISNA(MATCH('Данные'!B2:B;I2:I6;0))))
Данные, которые отсутствуют в списке
Список находится в I2:I6
=FILTER('Данные'!A2:F;ISNA(MATCH('Данные'!B2:B;I2:I6;0)))
Данные, которые находятся в заранее заданном списке
Список {"Георгий";"Ермак";"Юлиус"}
=FILTER('Данные'!A2:F;NOT(ISNA(MATCH('Данные'!B2:B;{"Георгий";"Ермак";"Юлиус"};0))))
Данные, которые соответствуют “нечеткому” списку значений
Список находится в I2:I6
=FILTER('Данные'!A2:F;REGEXMATCH('Данные'!B2:B; "(?i)(" & JOIN("|"; I2:I6) & ")"))
Пример выбора только женских имен
=FILTER('Данные'!A2:F;REGEXMATCH('Данные'!B2:B; "(?i)(" & JOIN("|"; {"а$";"я$"}) & ")"))