Табличные фильтры

В Excel и подобных программах фильтры встроены в шапку таблицы. Такое расположение стало привычным для пользователей.

Шапка таблицы с колонками «Заголовок»: у одной открыт фильтр — список чекбоксов «Первый», «Второй», «Третий», «Четвёртый», у соседней синяя иконка сортировки. Строки таблицы — серые полосы-заглушки.

Этот способ фильтрации подходит для таблиц — то есть списков, где данные разделены по колонкам.

Описание работы

Фильтр можно собрать из разных контролов: чекбоксов, полей с датами, строки поиска. Разберём работу фильтра на примере набора чекбоксов.

Изначально фильтр не применён и чекбоксы в фильтре не проставлены. Когда пользователь выбирает один пункт, фильтр сразу включается — в таблице остаются только отмеченные варианты.

Сначала фильтр «Ответственный» открыт и в списке сотрудников ничего не отмечено, затем отмечена «Иванова Ирина» и вместо стрелки у заголовка появилась синяя иконка воронки

В таблицах Excel другой принцип: по умолчанию отмечены все галки. Чтобы отфильтровать по нескольким параметрам, придётся сначала снять галку «Все», а потом выбрать нужное.

В наших сервисах более частый сценарий — отфильтровать список по 1 — 2 параметрам. Для этого описанный способ подходит лучше: чтобы получить желаемое, достаточно отметить нужные варианты.

После выбора фильтр не закрывается, и пользователь может продолжить отмечать пункты. Если фильтр применяется с задержкой, покажите лоадер поверх списка, но не перекрывайте лоадером фильтр.

Та же таблица: фильтр открыт у четвёртой колонки, строки таблицы побледнели, поверх них спиннер, а список фильтра лоадером не перекрыт

Фильтр закрывается по клику в любом месте вокруг него.

Если фильтр сложно применять мгновенно, попробуйте поискать решение вместе с разработчиком. Например, если дело в нагрузке на сервис, можно отправлять запрос не после каждого клика, а с задержкой. Пока пользователь отмечает несколько пунктов, пауза будет незаметной, а сервис получит один запрос вместо нескольких.

Фильтр «Организация» с поиском по названию и ИНН-КПП: отмечены четыре организации из шести, внизу кнопки «Применить» и «Отменить»

Не рекомендуется делать применение фильтра по кнопке

Если при работе с таблицей чаще нужно «получить все варианты, кроме...», добавьте пункт «Все». Пользователь сможет поставить все галки, а потом убрать ненужные.

Фильтр «Ответственный» с пунктом «Все»: сначала ничего не отмечено, затем отмечено «Все» и вместе с ним все сотрудники, у заголовка по-прежнему стрелка. После снятия части галок отмечены три сотрудника, у заголовка синяя воронка.

Отмеченный пункт «Все» не включает фильтр. Если закрыть фильтр и открыть снова — чекбоксы не будут отмечены.

Строка поиска в фильтре

Если список вариантов большой, добавьте строку поиска. Например, список из 5 — 10 организаций ещё можно пролистать, но для большего количества удобнее использовать поиск.

Не убирайте строку поиска, если количество вариантов сократилось. Например, когда пользователь удалил из справочника часть данных.

В открытом фильтре поле поиска сразу в фокусе.

Сначала в открытом фильтре «Организация» поле поиска в фокусе и пустое, под ним шесть организаций, затем после ввода названия ООО «Коммунальные…» в списке осталась только она

Пересечение фильтров

Если пересечение фильтров пустое, покажите это сразу — заблокируйте пункт, который приведёт к нулевому результату.

Например, для выбранных организаций нет требований, где квитанция отправлена. Тогда пункт «Отправлена» блокируем.

Фильтр «Организация» с двумя отмеченными организациями и открытый рядом фильтр «Квитанция»: пункт «Отправлена» серый и заблокирован, «Не отправлена» и «Квитанция не нужна» доступны

Составной фильтр

Фильтр можно составить из нескольких контролов.

У счетов-фактур уникальные номера, и поиск по номеру будет удобнее длинного списка чекбоксов — добавляем поле поиска. Те же счета-фактуры удобно фильтровать по периодам — добавим диапазон дат.

Составляйте фильтр, исходя из сценариев работы, не бойтесь комбинировать.

Составной фильтр: поле поиска в фокусе с плейсхолдером «Поиск по номеру с-ф», диапазон дат из двух полей с календарём, ниже блок «Сортировка» с пунктами «Сначала новые» и «Сначала старые»

Результат применения фильтров и сброс

Покажите в интерфейсе, сколько элементов найдено, и дайте возможность сбросить фильтры. Поместите результат и кнопку сброса как можно ближе к данным. Хороший способ — поставить результат под шапку, но можно и в другие части таблицы.

Шапка таблицы, у двух колонок синие иконки фильтра, под шапкой строка «Найдено 50 счетов-фактур из 100» и ссылка «Сбросить фильтры» с крестиком в круге

Фильтры не сбрасываются, когда пользователь:

  • переходит внутрь элементов списка и возвращается назад;
  • обновляет страницу.

Фильтры сбросятся, если пользователь перейдёт по навигации в другую часть системы или выйдет из сервиса.

Если пользователю необходимо сохранять применённые фильтры, добавьте такую возможность. Хороший способ — сохранять применённые фильтры в адресе. Тогда можно поделиться с коллегой ссылкой на отфильтрованный список.

Применённые фильтры показываем в виде чипсов, чтобы быстрее считать, по каким критериям отфильтрован контент.

Та же таблица: под шапкой на серой полосе чипсы «Фильтр-1», «Фильтр-2», «Фильтр-3» с крестиками и ссылка «Сбросить фильтры»

Если чипсов больше, чем на одну строку, они переносятся на новую.

Шесть чипсов фильтров не помещаются в строку: «Фильтр-6» перенесён на вторую строку, за ним текст «Найдено 50 счетов-фактур из 100» и ссылка «Сбросить фильтры»

При наведении на крестик его цвет меняется с #757575 на #222222.

Чипс «Фильтр-1»: сначала крестик серый, затем при наведении курсора крестик становится чёрным

Сортировка

Если в таблице присутствуют и фильтры, и сортировка, рекомендуем в обоих случаях показывать раскрывающийся список с вариантами. Так поведение по клику на заголовок будет единообразным. Кроме того, пользователь явно увидит, что означают иконки сортировки.

Два открытых списка: фильтр «Ответственный» с чекбоксами «Все» и фамилиями сотрудников и сортировка «Дата получения» с пунктами «Сначала новые» и «Сначала старые»

По клику на один из вариантов сортировка применяется, а раскрывающийся список закрывается. Иконка напротив заголовка колонки показывает направление сортировки.

Сначала в списке «Дата получения» курсор на пункте «Сначала новые», затем список закрыт и у заголовка иконка сортировки, после повторного открытия пункт «Сначала новые» выделен серым

Отдельный способ отменить сортировку не нужен, её отменит сортировка по другой колонке.

Бывает, что строки изначально не отсортированы ни по одной колонке и этот порядок важен. Например, загруженные из 1С счета-фактуры. В таком случае добавьте третий пункт сортировки вроде «Порядок по умолчанию».

Если в таблице нет фильтров и есть только сортировка, можно обойтись без раскрывающегося списка и сортировать сразу по клику на заголовок:

Сначала у заголовка «Дата получения» серая иконка сортировки, затем при наведении курсора появляется серая плашка, после клика иконка меняется на сортировку в обратном направлении

Ещё раз, в одной таблице нельзя комбинировать два способа. То есть если в таблице есть фильтр хотя бы у одной колонки, то у всех колонок по клику появляется раскрывающийся список.

Сортировка и фильтр

Одновременно к колонке можно применить и фильтр, и сортировку.

Открыт список «Квитанция» с чекбоксами и блоком «Сортировка». Справа три состояния заголовка: с иконкой сортировки — «Применена сортировка», с синей воронкой — «Применён фильтр», с обеими иконками — «Применено и то, и другое».

Чтобы ясно показать пользователю, по какому столбцу включён фильтр или сортировка, отображаем иконку цвета продукта.

Если включён и фильтр, и сортировка — показываем сразу 2 иконки. Причём последовательность всегда одна: фильтр → сортировка.

Фильтр «Ответственный» с блоком «Сортировка»: сначала ничего не выбрано, у заголовка стрелка, затем отмечен «Первый» и у заголовка синяя воронка, после выбора «Сначала новые» рядом с воронкой синяя иконка сортировки

Дизайн и управление клавиатурой

При наведении на ячейку в шапке её фон подсвечивается в #F0F0F0, а текст в #222222.

Если фильтр применён, то текст в шапке остаётся #222222.

Иконка «стрелка вниз» подсказывает, что по колонке можно фильтровать или сортировать. По ховеру появляется серая плашка, а заголовок и иконка становятся темнее.

Курсор на заголовке третьей колонки: появилась серая плашка, заголовок и стрелка вниз стали темнее

По клику появляется список вариантов. Серая плашка у заголовка остаётся, пока список раскрыт. Ховер и выделение не подсвечивают пункт меню под курсором, а влияют на вложенный элемент.

У третьей колонки открыт фильтр, серая плашка у заголовка осталась, курсор на пункте «Второй» — подсвечен только его чекбокс, а не вся строкаУправление клавиатурой: стрелки вверх и вниз — переключение между вариантами в списке, Esc закрывает выпадающий список, с зажатой Shift можно выделить диапазон чекбоксов

Пример

Есть список требований от налоговой. Новые требования всегда сверху — включена сортировка по дате.

Таблица требований из налоговой с колонками «№», «Получено», «ИФНС», «Вид документа», «Организация», у «Получено» иконка сортировки, строки идут от новых к старым — с 18.03.19 по 15.03.19

Например, мы хотим посмотреть все требования о представлении пояснений.

У колонки «Вид документа» открыт фильтр с поиском и чекбоксами, отмечено «Представление пояснений»

Видим, какой фильтр включён, результат поиска и можем сбросить фильтр.

Фильтр применён: у «Вид документа» синяя воронка, под шапкой «Найдено 50 счетов-фактур из 100» и ссылка «Сбросить фильтры»

При фильтрации список перестраивается, поэтому не страшно, что строка результата его сдвинет. Если при скролле шапка залипает, результаты не залипают вместе с ней.