Работа со списками
3.2 Автофильтр
Автофильтр включается выбором команды "Данные/Фильтр/Добавить автофильтр" (рис. 3.6). При этом указатель активной ячейки должен находиться в одной из ячеек диапазона, занимаемого списком, например, в строке с именами полей. После включения Автофильтра в каждой ячейке строки с именами полей появляется значок раскрывающегося списка (рис. 3.7).
При раскрытии списка показываются все варианты значений в выбранном поле, а также варианты (Все), (Верхние 10...) и (Другой...). Список вариантов критериев выбора для поля "Детей" показан на рис. 3.8.
Самый простой вариант использования Автофильтра – выбор данных по точному соответствию значений. При этом критерии могут устанавливаться по нескольким полям одновременно, что соответствует логической операции "И", т.е. все выбранные условия должны одновременно выполняться. Например, выберем мужчин, имеющих среднее специальное (ср/сп) образование. Результат показан на рис. 3.9.
О том, что данные подверглись фильтрации, можно узнать по двум признакам. Во-первых, некоторые строки таблицы оказываются скрытыми. Во-вторых, кнопки раскрывающихся списков для полей, по которым установлен фильтр, также меняют свой вид – маленькие черные треугольнички оказываются повернуты набок (и при определённых настройках интерфейса тоже меняют цвет, что заметно на приведённом рисунке).
Чтобы вернуть список в первоначальный вид, можно выполнить команду "Данные/Фильтр/Удалить автофильтр" из главного меню, а можно для "отфильтрованных" полей установить автофильтр в вариант (Все).
В списке критериев Автофильтра вариант (Другой...) позволяет установить для выбранного поля два условия, связав их логическим выражением "И" или "ИЛИ". Сначала рассмотрим возможности формирования условий поиска для текстовых полей.
Пусть требуется выбрать из общего списка людей, фамилии которых начинаются на "Ми" или "Ни". Тогда диалог настройки автофильтра по полю "ФИО" будет выглядеть следующим образом (рис. 3.10).
В данном случае варианты сравнения выбираются из списка слева. Список вариантов показан на рис. 3.11.
В рассмотренном примере для формирования условий логичным является использование логической функции "ИЛИ", поскольку фамилия не может начинаться одновременно с разных букв. Результаты поиска показаны на рис. 3.12.
Для полей текстового типа можно использовать варианты условий "equals", "does not equal", "begins with", "does not begin with", "ends with", "does not end with", "contains" и "does not contain".
Пусть теперь надо найти людей, фамилии которых состоят из 5-ти или 6-ти букв. Для этого нужно указать, что в поле "ФИО" содержатся пять (или шесть) любых символов, после которых обязательно стоит пробел. Тогда для указания любого одиночного символа используется символ подстановки "?". В этом случае условия поиска по полю "ФИО" будут выглядеть следующим образом (рис. 3.13).
Соответствующий результат показан на рис. 3.14.
Для полей числового типа (в том числе дат) при формировании условий поиска используются варианты "equals", "does not equal", "is less then", "is greater than", "is less than or equal to" и "is greater then or equal to".
Сначала рассмотрим работу с данными числового типа (включая даты) на примере поиска сотрудников, родившихся в 1975 году. Год, как известно, начинается 1 января, а заканчивается 31 декабря. Поэтому для поля "Дата рождения" сформируем условия в соответствии с рис. 3.15.
Результат применения фильтра показан на рис. 3.16.
Наконец, рассмотрим ситуацию, когда для формирования условий нет возможности напрямую указать значения, но можно получить эти значения после некоторых расчётов.
Пусть теперь нужно получить список сотрудников, начавших трудовую деятельность летом. Поскольку в поле "Нач.стажа" нет возможности выбрать конкретный месяц и для числовых полей нельзя воспользоваться символами подстановки, воспользуемся базовыми возможностями электронной таблицы и создадим новое (расчетное) поле "Месяц" с помощью функции month() (перед созданием нового поля нужно отключить автофильтр).
Условие для поиска по расчётному полю показано на рис. 3.17, а результат – на рис. 3.18.
Таким образом, в Gnumeric с помощью Автофильтра можно эффективно проводить поиск данных, задавая критерии для нескольких полей по очереди, используя либо точное совпадение значений, либо условия, связанные отношениями "И" или "ИЛИ". В принципе, практически для любых выборок можно создавать расчетные поля (одно или несколько), используя текстовые, математические, логические и любые другие функции электронных таблиц, однако есть более эффективные приемы работы, которые описываются ниже.
Для ситуаций, когда по одному полю необходимо указать более двух условий, или условия являются противоречивыми, используется расширенный фильтр.