Основой усовершенствованных фильтров служит выражение, которое может использоваться для создания пользовательского фильтра на уровне набора данных или карточки. Усовершенствованным фильтрам доступны те же операторы (например, +, ÷, > и <>) и функции, что и вычисленным полям.
Примечание:
Расширенные фильтры недоступны для некоторых удаленных векторных слоев. Если удаленный векторный слой не поддерживает расширенные фильтры, можно скопировать слой в рабочую книгу и применить расширенный фильтр к копии.
Расширенные выражения фильтра могут выглядеть некорректно при использовании смешанных символов языков с написанием справа налево и слева направо в рамках одного выражения. Например, если в выражении используются названия полей и на английском, и на арабском языках, то оно может отображаться некорректно. На результаты выражения не влияют смешанные символы с написанием слева направо и справа налево.
Расширенные фильтры используются, когда запрос является сложным, или некоторая информация неизвестна или требует вычисления. Ниже приводятся примеры использования усовершенствованных фильтров:
- У вас имеется набор данных о школах по всем штатам Америки, но вы хотели бы выполнить анализ по школам в графстве Даллас, штат Техас. Обычный фильтр для графства Даллас возвращает школы в Алабаме, Айове и Техасе. Усовершенствованный фильтр, используя выражение County="Dallas" AND State="Texas", применит фильтр к набору данных так, что будут возвращены только школы графства Даллас штата Техас.
- У вас есть набор данных с местоположениями магазинов, доходами и расходами, но вы хотите видеть только убыточные магазины. Усовершенствованный фильтр, используя выражение Revenue<Expenses, применит фильтр к набору данных так, что будут возвращены только те магазины, в которых расходы выше доходов.
- Имеется набор данных с местоположениями гидрантов, датами и статусом их проверки за несколько лет, а вам необходимо видеть только проверки поврежденных гидрантов, прошедшие в 2018 и позднее. Расширенный фильтр, используя выражение InspectionDate>=DATE(2018,01,01)AND Status="Damaged", применит фильтр к набору данных так, что будут возвращены только оценки ущерба, выполненные после 1 января 2018 года.
Примечание:
Функция даты, например DATE(), DATEVALUE() или NOW(), должна применяться в выражении расширенного фильтра с использованием поля даты/времени. Дата, введенная как строковое значение (например, "01/01/2018" для 1 января 2018 года), не будет считываться и не приведет к результатам.
Применение усовершенствованных фильтров на уровне набора данных
Для применения усовершенствованного фильтра на уровне набора данных выполните следующие шаги:
- Выберите набор данных, к которому вы хотели бы применить фильтр на панели данных.
- Нажмите кнопку Опции набора данных рядом с соответствующим набором данных.
- В меню опций набора данных щелкните Усовершенствованный фильтр.
- Щелкнув внутри окна Выражение пользовательского фильтра, вы увидите доступные поля и функции и сможете начать написание своего выражения.
- В нижней части окна Выражение пользовательского фильтра наблюдайте зеленую метку , означающую, что выражение корректно.
Примечание:
В выражении должен присутствовать пригодный для фильтра условный оператор, такой как < , = или <> (например, Revenue-Expenses>100000).
- Щелкните Применить.
Выражение будет применено ко всему набору данных. Все карточки, которые были созданы с помощью этого набора данных, будут обновлены.
Применение усовершенствованных фильтров на уровне карточки
Для применения усовершенствованного фильтра на уровне карточки выполните следующие шаги:
- Создайте карту, диаграмму или таблицу с помощью набора данных, к которому вы хотели бы применить фильтр.
- Нажмите кнопку Фильтр карточки на панели инструментов соответствующей карточки.
- На панели Новый фильтр выберите Усовершенствованный.
- Щелкнув внутри окна Выражение пользовательского фильтра, вы увидите доступные поля и функции и сможете начать написание своего выражения.
- В нижней части окна Выражение пользовательского фильтра наблюдайте зеленую метку , означающую, что выражение корректно.
Примечание:
В выражении должен присутствовать пригодный для фильтра условный оператор, такой как < , = или <> (например, Revenue-Expenses>100000).
- Щелкните Применить.
Данное выражение было применено только к фильтруемой карточке. Другие карточки, использующие тот же набор данных, не изменились.
Примечание:
Активная кнопка Фильтр карточек показывает количество фильтров, примененных к карточке, включая расширенные фильтры. При создании расширенного фильтра для карточки итоговый набор данных также добавится к панели данных с тем же фильтром, что и на уровне набора данных. Если новые карточки создаются с использованием итогового набора данных, то все карточки будут ссылаться на фильтр набора данных в итоговом наборе данных, а фильтр карточки будет удален из исходной карточки. Поскольку исходная карточка также ссылается на итоговый набор данных, в отображаемых данных изменений не будет.
Удаление или обновление расширенного фильтра
Для обновления расширенного фильтра на уровне набора данных выполните следующие шаги:
- Нажмите кнопку Опции набора данных для набора данных, к которому применен расширенный фильтр.
- Нажмите Расширенный фильтр в меню опций набора данных.
- Вы можете сделать следующее:
- Измените выражение фильтра и нажмите Применить, чтобы обновить фильтр.
- Чтобы удалить фильтр, щелкните кнопку Удалить фильтр .
Для обновления расширенного фильтра карточки выполните следующие шаги:
- Нажмите активную кнопку Фильтр карточек .
- Щелкните фильтр, который хотите обновить.
- Вы можете сделать следующее:
- Измените значения фильтра и нажмите Применить, чтобы обновить фильтр.
- Чтобы удалить фильтр, щелкните кнопку Удалить фильтр .
Примеры выражений
В следующей таблице приведены примеры типов выражений, которые можно использовать в расширенных фильтрах:
Выражение | Описание |
---|---|
DATEDIF(date_field, NOW(), "D")<=28 | Фильтрует записи за последние 28 дней. |
number_field>AVG(number_field) | Фильтрует строки, где значение number_field больше среднего. |
number_field_1>number_field_2 | Фильтрует строки, где значение number_field_1 больше значения number_field_2. |
number_field<10 OR number_field>20 | Фильтрует данные так, чтобы средние значения (в данном случае числа от 10 до 20) не включались. |
string_field IS NOT NULL | Фильтрует данные так, чтобы включить только те строки, в которых поле содержит не null значения. |