Перейти к содержимому

При заданных фильтрах укажите какие данные будут отфильтрованы

  • автор:

Настройки счетчика №33980360: При заданных фильтрах укажите, какие данные будут отфильтрованы?

Настройки счетчика №33980360: При заданных фильтрах укажите, какие данные будут отфильтрованы?

  • Просмотры страницы с заголовком «тест»
  • Просмотры любых страниц, кроме страницы с заголовком «тест»
  • Все визиты
  • Визиты владельца счетчика
  • Все визиты, кроме визитов владельца счетчика

Подписывайтесь на наши сообщества по интернет-маркетингу

Видеоматериалы:

Канал в Telegram:

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

Использование расширенных условий фильтрации

Если для фильтрации данных требуются сложные условия (например, Тип = «Фрукты» ИЛИ Продавец = «Егоров»), можно использовать диалоговое окно Расширенный фильтр.

Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Дополнительно.

Группа

Расширенный фильтр

Продавец = «Егоров» ИЛИ Продавец = «Грачев»

Тип = «Фрукты» И Продажи > 1000

Тип = «Фрукты» ИЛИ Продавец = «Грачев»

(Продавец = «Егоров» И Продажи >3000) ИЛИ
(Продавец = «Грачев» И Продажи > 1500)

Продавец = имя со второй буквой «г»

Обзор расширенных условий фильтра

Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.

  • Она отображает диалоговое окно Расширенный фильтр, а не меню «Автофильтр».
  • Вы вводите расширенные условия в отдельном диапазоне условий на листе над диапазоном ячеек или таблицей, которую нужно отфильтровать. В качестве источника расширенных условий в Microsoft Office Excel используется отдельный диапазон условий в диалоговом окне Расширенный фильтр.

Образец данных

Этот пример данных используется для всех процедур, описанных в этой статье.

Эти данные включают четыре пустые строки над диапазоном списка, которые будут использоваться как диапазон условий (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.

Для работы с этими данными выделите их в следующей таблице, скопируйте, а затем вставьте в ячейку A1 на новом листе Excel.

Операторы сравнения

Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.

Оператор сравнения

>= (знак «больше или равно»)

Больше или равно

Меньше или равно

Использование знака равенства для ввода текста или значения

При вводе текста или значения в ячейке знак равенства (=) используется для обозначения формулы, поэтому Excel вычисляет то, что вы вводите. Однако при этом вы можете получить неожиданные результаты фильтрации. Чтобы указать оператор сравнения «равно» для текста или значения, введите условия в виде строкового выражения в соответствующей ячейке в диапазоне условий.

=»= ввод »

где ввод — искомый текст или значение. Например:

Вводится в ячейку

Вычисляется и отображается

Учет регистра

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

Использование заранее определенных имен

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

Создание условий с помощью формулы

В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.

  • Формула должна возвращать результат ИСТИНА или ЛОЖЬ.
  • Поскольку используется формула, введенное строковое выражение должно иметь обычный вид, а не тот, который показан ниже: =»=ввод»
  • Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: «Среднее арифметическое» и «Точное совпадение»). Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, поскольку она не влияет на фильтрацию диапазона списка.
  • В формуле, которая используется для условий, необходимо использовать относительную ссылку для ссылки на соответствующую ячейку в первой строке данных.
  • Все остальные ссылки в формуле должны быть абсолютными.

Несколько условий, один столбец, любое из условий истинно

Логическое выражение: (Продавец = «Егоров» ИЛИ Продавец = «Грачев»)

  1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
  2. Чтобы найти строки, отвечающие нескольким условиям для одного столбца, введите условия непосредственно одно под другим в разных строках диапазона условий. Используя пример, введите:

Тип Продавец Продажи
=»=Егоров»
=»=Грачев»

Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки. Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
  • В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
  • Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип Продавец Продажи
    Мясо Егоров 450 ₽
    фрукты Грачев 6 328 ₽
    Фрукты Егоров 6 544 ₽

    Несколько условий, несколько столбцов, все условия истинны

    Логическое выражение: (Тип = «Фрукты» И Продажи > 1000)

    1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
    2. Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, введите все условия в одной строке диапазона условий. Используя пример, введите:

    Тип Продавец Продажи
    =»=Фрукты» >1 000

    Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки. Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
  • В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
  • Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

    Тип Продавец Продажи
    фрукты Грачев 6 328 ₽
    Фрукты Егоров 6 544 ₽

    Несколько условий, несколько столбцов, любое из условий истинно

    Логическое выражение: (Тип = «Фрукты» ИЛИ Продавец = «Грачев»)

    1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
    2. Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, где любое условие может быть истинным, введите эти условия в разных строках диапазона условий. Используя пример, введите:

    Тип Продавец Продажи
    =»=Фрукты»
    =»=Грачев»

    Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.

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

    Тип Продавец Продажи
    фрукты Грачев 6 328 ₽
    Фрукты Егоров 6 544 ₽

    Несколько наборов условий, один столбец во всех наборах

    Логическое выражение: ( (Продажи > 6000 И Продажи < 6500 ) ИЛИ (Продажи < 500) )

    1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
    2. Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для одного столбца, используйте несколько столбцов с одинаковым заголовком. Используя пример, введите:

    Тип Продавец Продажи Продажи
    >6 000

    Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.

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

    Тип Продавец Продажи
    Мясо Егоров 450 ₽
    фрукты Грачев 6 328 ₽

    Несколько наборов условий, несколько столбцов в каждом наборе

    Логическое выражение: ( (Продавец = «Егоров» И Продажи > 3000) ИЛИ (Продавец = «Грачев» И Продажи > 1500) )

    1. Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
    2. Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для нескольких столбцов, введите каждый набор условий в отдельных столбцах или строках. Используя пример, введите:

    Тип Продавец Продажи
    =»=Егоров» >3 000
    =»=Грачев» >1 500

    Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки. Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
  • В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
  • Используя пример, получим следующий отфильтрованный результат для диапазона списка:

    Тип Продавец Продажи
    фрукты Грачев 6 328 ₽
    Фрукты Егоров 6 544 ₽

    Условия с подстановочными знаками

    Логическое выражение: Продавец = имя со второй буквой «г»

    1. Чтобы найти текстовые значения с совпадающими знаками в некоторых из позиций, выполните одно или несколько действий, описанных ниже.
    2. Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства (=). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова «Белов», «Беляков» и «Белугин».
    3. Воспользуйтесь подстановочными знаками.

    Используйте Чтобы найти
    ? (вопросительный знак) Любой символ (один)
    Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»
    * (звездочка) Любое количество символов
    Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»
    ~ (тильда), за которой следует ?, * или ~ Вопросительный знак, звездочку или тильду
    Пример: условию «ан91~?» соответствует результат «ан91?»
    Тип Продавец Продажи
    =»=Мя*»
    =»=?г*»

    Группа

  • Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
  • На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
  • Выполните одно из следующих действий:
    • Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте
    • Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.

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

    Тип Продавец Продажи
    Напитки Шашков 5 122 ₽
    Мясо Егоров 450 ₽
    фрукты Грачев 6 328 ₽

    Дополнительные сведения

    Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

    Применение фильтров

    Фильтр предоставляет сфокусированный вид векторного слоя на карте. Посредством ограничения видимости объектов слоя, вы можете выделить то, что является наиболее важным. Например, вы можете создать фильтр для слоя преступлений таким образом, что на карте будут отображаться только поджоги за последний месяц. С помощью фильтрации слоя преступлений по типу и дате, можно увидеть распределение мест, где совершены поджоги, что может помочь департаменту полиции предотвратить дальнейшие попытки.

    Как автор карты вы можете настроить интерактивные фильтры, которые позволят вашей аудитории изучать данные самостоятельно. Предоставляя подсказки и советы о доступных значениях в слое, вы указываете вашей аудитории другие фильтры, которые можно применить к объектам. Например, вы можете создать интерактивный фильтр для слоя школ таким, чтобы ваша аудитория могла бы выбрать для просмотра либо начальные школы (elementary), либо средние школы (middle), либо училища (secondary). По умолчанию слой показывает начальные школы (elementary). Считывая предоставленные вами подсказки и советы о доступных значениях в слое, ваша аудитория знает, что может изменить значения на средние школы (middle) или училища (secondary) .

    Создание фильтра

    Работа с существующими фильтрами

    Если векторный слой карты содержит фильтр, вы видите фильтрованный вид объектов. На карте будут отображены только те объекты, которые удовлетворяют заданным в фильтре условиям. Например, автор карты может настроить фильтр для слоя школ, который содержит начальные, средние школы и училища, чтобы показывать только начальные школы (например, Тип Начальные ). В этом случае, средние школы и училища будут отфильтрованы при отображении карты. Если автор карты установил интерактивный фильтр для слоя школ, то вы можете изменить значение на Средние школы и теперь видеть только средние школы в данном регионе.

    Вы можете получить доступ к фильтру для просмотра выражений, для изменения любых интерактивных выражений в фильтре и для редактирования фильтра. Любые произведённые вами изменения применяются только к вашему отображению (виду) карты (если только вы не являетесь владельцем карты, когда вы можете сохранить ваши изменения).

    1. Откройте карту, содержащую фильтрованный слой, во вьюере карт.
    2. Щелкните Детали и щелкните Ресурсы .
    3. Перейдите к векторному слою с имеющимся фильтром и щелкните Фильтр Фильтр. Окно Фильтр
    4. Изменить, редактировать или просмотреть фильтр.
      • На вкладке Изменить вы можете применить новое значение для существующего интерактивного фильтра. Введите новое значение для выражения и нажмите кнопку Применить фильтр . Отображение карты обновляется новым фильтрованным видом векторного слоя. Вкладка также показывает похожие версии выражений фильтра. Данная вкладка появляется тогда, когда в фильтре присутствуют интерактивные выражения. Если в фильтре отсутствуют интерактивные выражения, то вы видите вкладку Просмотреть вместо версий выражений фильтра.
      • На вкладке Редактировать вы можете обновить выражения. Ознакомьтесь со следующим разделом для получения более подробной информации по обновлению выражений.

    Создание фильтров

    Вы можете создать фильтры для размещенных векторных слоев, слоев сервисов объектов ArcGIS Server и слоев картографических сервисов ArcGIS Server , которые имеют ассоциированные атрибутивные данные; вы не можете создавать фильтры для примечаний к карте или для объектов, импортированных из файла. На карте будут отображены только те объекты, которые удовлетворяют заданным в выражении условиям.

    Фильтр

    1. Откройте карту во вьюере карт.
    2. Щелкните Детали и щелкните Ресурсы .
    3. Перейдите к векторному слою, который вы хотите отфильтровать и щелкните Фильтр .
    4. Создайте ваше определяющее выражение.
    5. Выражения используют следующую общую форму: .
    6. Вы можете создать одно выражение, несколько выражений, или один или несколько наборов выражений. Набор представляет собой группировку выражений, например, Тип – начальные и Прием – 400 и более (Type is elementary and Enrollment is at least 400) .
    7. Если у вас имеется более одного выражения, то выберите для отображения объекты в слое, которые удовлетворяют Всем или Любому выражению. Вариант Все требует, чтобы каждое из заданных вами условий было истинным. Вариант Любое означает, что только одно из заданных вами условий должно быть истинным для отображения объектов.
    8. Для части выражения «поле (field)», щёлкните стрелку ниспадающего списка Поле и выберите в списке поле, по которому нужно построить запрос.
    9. Для части выражения «оператор (operator)», щелкните стрелку ниспадающего списка Операторы и выберите оператор.
    10. Если вы хотите построить фильтр на базе конкретного значения, выберите Значение и введите значение в поле. Поле ввода текста варьируется в зависимости от типа поля.
    11. Если вы хотите сравнить значение одного поля с значением другого поля, щёлкните стрелку ниспадающего списка Поле и выберите в списке поле для вашего выражения.
    12. Если вы хотите построить фильтр на базе конкретного значения в выбранном для вашего выражения поле, щелкните Уникальное значение и выберите уникальное значение из вашего поля.
    Примечание:

    Фильтры уникальных значений для полей дат не поддерживаются.

    Удалить

  • Если вы создали выражение на основе значений или уникального значения, вы можете настроить интерактивное выражение. Вы не можете запрашивать значения для выражений на основе поля. Щелкните прямоугольник слева от строки Запросить значения . Введите информацию о значении в поле Подсказка и совет в поле Совет .
  • Для удаления выражения в фильтре, щелкните кнопку Удалить справа от вашего выражения.
  • Щелкните Применить фильтр , чтобы включить фильтрованный вид на карте.

    Подсказка:

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

    Фильтр по дате

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

    К операторам для фильтрации даты относятся соответствует , не соответствует , до , после , между и не между .

    Примечание:

    Фильтр по дате доступен для размещенных векторных слоев и сервисов слоев версии ArcGIS Server 10.2 и выше, которые поддерживают стандартизированные запросы.

    Фильтр

    1. Откройте карту во вьюере карт.
    2. Щелкните Детали и щелкните Ресурсы .
    3. Перейдите к векторному слою, который вы хотите отфильтровать и щелкните Фильтр .
    4. Создать определяющее выражение для фильтрации дат можно так:
    1. Выберите поле даты из ниспадающего меню Поле .
    2. Выберите оператор – например, соответствует , до , в последние и т.д. – из ниспадающего меню Оператор .
    3. В зависимости от того, как вы хотите отфильтровать данные, сделайте одно из следующих действий:
    • Если вы хотите построить фильтр по определенному значению даты, выберите Значение и введите значение. В зависимости от выбранного оператора, вы можете задать одну дату (или две даты) из календаря, ввести одну или две даты вручную или указать временной диапазон в днях, неделях или месяцах.
    • Если вы хотите сравнить значение одного поля с значением другого поля, щелкните Поле и выберите поле в ниспадающем списке.

    Замечания по работе с фильтрами

    • Вы можете создать фильтры для размещенных векторных слоев, представлений размещенных векторных слоев, слоев сервисов объектов GIS Server и слоев картографических сервисов GIS Server , которые имеют ассоциированные атрибутивные данные. Вы не можете создавать фильтры для примечаний к карте или объектов, импортированных из файла.
    Примечание:

    Фильтры, примененные ко всем размещенным векторным слоям и видам размещенных векторных слоев, не влияют на доступ к данным слоя. Любой пользователь, имеющий доступ к слою, может удалить фильтр и получить доступ ко всему объему данных.

  • Чтобы изменить имя поля, отредактируйте псевдоним поля через настройку всплывающих окон.
  • Вы можете создать интерактивное выражение на основе значений или уникальных значений. Вы не можете создать интерактивные выражения на основе поля.
  • Не добавляйте специальные символы в ваши значения, если только эти специальные символы не являются частью значения. Например, Город «New York» не находит объект, именованный как New York . Вместо этого, используйте в данном примере выражение Город New York (City is New York) .
  • Если ваше поле содержит кодированные значения, то список Значения покажет все кодированные значения, определенные сервисом для поля. При этом могут быть включены значения, которые не существуют как объекты слоя. Список Уникальные значения показывает все объекты слоя (которые могут быть подмножеством значений в сервисе).
  • Если у вас есть несколько выражений, то ваш результат будет зависеть от того, сгруппировали ли вы выражения в наборы и каким образом. Например, если вы создаете фильтр, где все следующие выражения должны быть истинными, Тип – средние или Тип – училища (это набор) и Категория – частные (это отдельное выражение), то фильтр выберет и частные средние школы, и частные училища. Пример фильтраЕсли вы вместо этого создаете свой фильтр, где должно выполняться следующее, Тип – средние и Категория – частные (теперь это ваш набор), или Тип – средние (это отдельное выражение), то фильтр выберет все публичные и частные средние школы, и частные училища.Пример фильтра
  • В этом разделе
    1. Работа с существующими фильтрами
    2. Создание фильтров
    3. Фильтр по дате
    4. Замечания по работе с фильтрами

    Фильтрация и сортировка данных

    Иногда бывает необходимо просмотреть определённые элемента, а не весь набор данных. Для этих случаем существует метод filter.

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

    Существует два способа фильтрации данных: фильтрация и сортировка данных встроенными инструментами и пользовательская фильтрация, при которой создаётся своя функция с методом filter().

    Фильтрация и сортировка содержимого

    Доступны только для datatable и treetable. Параметры сортировки и фильтрации указываются отдельно для каждого столбца.

    Чтобы разрешить фильтрацию, используйте параметр content и укажите необходимый тип фильтра в качестве значения, например:

    • textFilter — фильтрует данные, когда пользователь вводит текст в поле;
    • selectFilter — позволяет выбирать из списка заранее заданных опций.

    Полный список типов фильтра доступен по этой ссылке.

    Данные сортируются с помощью параметра sort, который принимает одно из следующих значений: «int», «date», «string», «string_strict (для фильтрации с учётом регистра), «text», «server», «raw». Вы также можете задать свой тип сортировки. Читайте подробнее о доступных типах сортировки.

    При клике на хедер столбца происходит сортировка в восходящем/нисходящем направлении.

    webix.ui({ view:"datatable", id:"films", columns:[ { id:"title", header:["Title", {content:"textFilter"}], sort:"string"}, { id:"year", header:["Year", {content:"selectFilter" ], sort:"int"}, { id:"votes", header:"Votes", sort:"int"} ] });

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

    У Datatable своя специфика фильтрации и сортировки, поэтому соответствующую информацию вы можете найти в следующих статьях:

    • Фильтрация Datatable
    • Сортировка Datatable

    TreeTable разделяет возможности DataTable и Tree, поэтому у этого компонента похожие шаблоны сортировки и фильтрации. Также, компонент заимствует свойство filterMode API дерева (описано дальше).

    Пользовательская фильтрация

    Остальные компоненты фильтруется с помощью функции filter, которая принимает значение для фильтра из поля и показывает те элементы, которые соответствуют этому значению.

    Фильтрация возможна двумя способами:

    С использованием темплейтов данных

    webix.ui({ rows:[ // прежде всего определите инпут и объект данных { view:"toolbar", elements:[ { view:"text", id:"list_input" } ] }, { view:"list", id:"list", template:"#rank#. #title#", select:true, data:big_film_set } ] }); $$("list_input").attachEvent("onTimedKeyPress",function(){ var value = this.getValue().toLowerCase(); // получаем данные из инпута $$("list").filter("#title#", value); }); // названия отфильтрованы

    Такой же шаблон у компонентов с похожими темплейтами данных (dataview и Tree). В примере выше в темплейты каждого фильма включены значения rank и title. Читайте более подробную информацию о темплейтах.

    С использованием функции

    Метод filter() принимает функцию в качестве аргумента. Он возвращает значения данных, которые соответствуют данным поля:

    $$("list_input").attachEvent("onTimedKeyPress",function(){ var value = this.getValue().toLowerCase(); // получаем значение поля $$("list").filter(function(obj){ // фильтруем все фильмы по названию return obj.title.toLowerCase().indexOf(value)==0; }); });

    Особенности фильтрации в Tree

    Фильтрация в Tree

    // воле ввода html input type='text' placeholder="type filter criteria here" style='width:250px; margin-left:20px' onkeypress="filter_tree()"/> // функция для фильтрации function filter_tree(){ tree.filter("#value#", this.value); }; // объект tree webix.ui({ view:"tree", select:true, data: smalltreedata });

    Функция выполняет фильтрацию в соответствии со значениями #value#, а также учитывает все уровни дерева и показывает результаты с дочерними элементами отфильтрованных веток, даже если значения этих элементов не соответствуют критерию фильтрации.

    Вы можете изменить шаблон фильтрации с помощью свойства filterMode.

    { view:"tree", filterMode:{ showSubItems:false, openParents:false, level:3 } }
    • showSubItems (boolean) - определяет, показывать ли дочерние элементы отфильтрованных веток.
    • openParents (boolean) - определяет, развёртывать ли ветки, чтобы показать найденные элементы.
    • level (number) - задаёт глубину фильтрации узлов дерева (начинается с '1'). Значение '0' фильрует все узлы.

    Фильтрация по нескольким свойствам

    У компонентов данных может быть более одного темлейта на каждую запись. Например, запись datatable состоит из нескольких ячеек разных столбцов. Записи dataview и list содержат несколько элементов, которые отражаются в их темплейте.

    Вы можете фильтровать компонент, ссылаясь на любой из его темплейтов и использовать при этом одно поле ввода.

    webix.ui({ rows:[ { view:"list", id:"dlist", template: "#rank#. #title#. #year#
    #category#"
    , // конфиг списка }, { view:"text", id:"filter-list" // поле для фильтрации } ] }); $$("filter-list").attachEvent("onTimedKeypress", function() var text = this.getValue().toString().toLowerCase(); // после ввода текста фильтруем соответствующую сетку $("dlist").filter(function(obj){ // фильтрация по нескольким свойствам var filter = [obj.title, obj.category, obj.year].join("); });

    Сортировка

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

    • "int" - сравнивает числовые значения;
    • "date" - сравнивает даты;
    • "string" - сравнивает строки без учёта регистра;
    • "string_strict" - сравнивает строки с учётом регистра;
    • "text" - сравнивает видимый текст (включая темплейты);
    • "string_locale" - compares string values based on the locale;
    • "string_locale_strict" - case-sensitive "string_locale";
    • "text_locale" - compares visible item text based on the locale (including template), datatable only;
    • "server" - создаёт запрос на сервер за данными;
    • "raw" - базовая сортировка с простым сравнением (a>b и наоборот);
    • вы также можете определить пользовательский тип сортировки.

    Варианты сортировки компонентов данных:

    • Динамическая сортировка с помощью метода sort():
     
    // описываем объект с параметрами webix.ui({ view: "list", template:"#title# - #year#" }); $$("list").sort({ by:"#title#", dir:"asc", as:"string" });
     
    // или используем метод с несколькими параметрами $$("chart").sort("#year#","desc"); $$("tree").sort("#value#", "asc");

    Более подробную информацию о методе sort читайте в справочнике API.

    • Вы можете определить правило изначальной сортировки в компоненте данных с помощью scheme:
    webix.ui({ view: "list", template:"#title# - #year#", scheme:{ $sort:{ by:"#title#", dir:"asc", as:"string" } } });

    Как добавить пользовательский тип сортировки

    Вы можете определить свой тип сортировки через свойство sorting.as у объекта webix.DataStore.prototype. Вам необходимо указать функцию, которая будет описывать тип сортировки следующим образом. The parameters of this function are the objects themselves and the name of the specified field:

    webix.DataStore.prototype.sorting.as.sort_type = function(a,b,prop){ return a[prop] > b[prop] ? 1 : -1 }

    Давайте определим новый тип "bylength" для сортировки данных по длине текста:

    webix.DataStore.prototype.sorting.as.bylength = function(a,b,prop){ return a[prop].length > b[prop].length ? 1 : -1 }

    Чтобы применить новый тип сортировки, вам необходимо передать имя этого типа в параметр as:

    • Динамичеси, с помощью метода sort():
     
    // указываем объект с параметрами webix.ui({ view: "list", template:"#title# - #year#" }); $$("list").sort({ by:"#title#", dir:"asc", as:"bylength" });
     
    // передаём несколько параметров в метод $$("list").sort("#title#", "asc", "bylength");
    • Или же укажите изначальную сортировку с помощью ключа $sort у объекта scheme:
    webix.ui({ view: "list", template:"#title# - #year#", scheme:{ $sort:{ by:"#title#", dir:"asc", as:"bylength" } } });

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *