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("|"; {"а$";"я$"}) & ")"))

Ссылки