Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на здачу.doc
Скачиваний:
5
Добавлен:
25.11.2019
Размер:
722.94 Кб
Скачать

2.2 Розширене фільтрування списків

В Excel є набагато потужніший та гнучкіший, але разом з тим складніший в реалізації, засіб фільтрування записів списку ніж автофільтрування. Це функція розширеного фільтрування (Advanced Filter), яка практично не має обмежень на кількість умов фільтрування (автофільтрування не більше двох), що можуть вказуватись для окремого

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

Поряд з цим, розширене фільтрування є складнішим в реалізації та вимагає додаткових підготовчих дій. Тому його використовують лише у випадку, якщо функція автофільтрування не дозволяє реалізувати потрібний критерій відбору або відфільтровані дані необхідно скопіювати в інше місце робочої книги.

При підготовці до операції розширеного фільтрування спочатку потрібно ввести або скопіювати в окремий рядок робочого аркуша (відділено від списку порожніми рядками та колонками), назви полів списку, який підлягає фільтруванню. Після цього, нижче назви поля, по якому потрібно вказати критерій відбору, необхідно ввести відповідну умову або декілька умов. Умови, що вказані в одному рядку вимагають одночасного виконання, тобто об’єднані логічним оператором “AND” (“І”), тоді як умови записані в одній колонці - логічним “OR” (“АБО”) - для виконання загальної умови достатньо щоб виконувались умови одного із рядків. Наприклад, на рисункувказано критерій за яким будуть відфільтровуватись записи для абонентів, які проживають по вулиці Пушкіна 3 або 12 і мають борг за попередній місяць більше 4 грн. Якщо для даного прикладу в третьому рядку аркуша не продублювати в колонці “Вулиця” запис “Пушкіна”, а в колонці “Борг за попередній місяць” - “>4”, то критерій буде відфільтровувати всіх абонентів, що проживають по вулиці Пушкіна 3 і мають борг більше 4 грн та всіх абонентів які проживають в 12-у будинку по будь-якій вулиці і незалежно від боргу.

В якості умов фільтрування можуть використовуватись текстові та числові умови. В числових умовах може використовуватись будь-який оператор порівняння: “=” - рівний (якщо це не обчислюваний критерій, то

можна не вказувати), “>” - більший, “<” - менший, “>=” - більший або рівний, “<=” - менший або рівний,”<>” - не рівний (наприклад, “>4” - всі значення більші за 4). Текстові умови можуть використовувати традиційні шаблони “*” - заміняє в текстовому фрагменті будь-яку кількість символів та “?” - заміняє лише один символ, або вищезгадані оператори порівняння. Потрібно також відмітити, що регістр символів (великі та малі літери) в текстових умовах не враховується

Приклади текстових умов:

>М слова, що починаються з літер що ідуть в алфавіті від “Н” до “Я”

<=К слова, що починаються з літер що ідуть в алфавіті від “А” до “К”

<>В всі слова крім тих, що починаються з будь-яких літер крім”В”

с*к всі слова, що починаються з літери ”с” і закінчуються на “к”

м??с всі слова, що починаються з літери “м”, закінчуються на “с” і містять не більше чотирьох літер

Після вказання всіх необхідних умов фільтрування необхідно виділити діапазон комірок, що містить потрібний список, тоді в пункті меню Data (Данные | Дані) вибрати підпункт Filter (Фильтр | Фільтр), а в ньому - команду Advanced Filter... (Расширенный фильтр... | Розширений фільтр...). Де в полі List range: (Исходный диапазон: | Вихідний діапазон:) повинен бути вказаний відмічений діапазон комірок. Якщо перед викликом даної команди користувач забув виділити список даних, то відповідний діапазон потрібно вказати вручну або скористатись кнопкою .

Далі в полі Criteria range: (Диапазон условий: | Діапазон умов:) потрібно вказати діапазон комірок, де знаходяться умови фільтрування разом із назвами полів. При цьому, можна також скористатись кнопкою .

Якщо потрібно однакові записи, що відповідають вказаному критерію фільтрування, відобразити лише по одному разу (щоб записи не

повторювались), то слід відмітити опцію Unique records only (Только уникальные записи | Лише унікальні записи).

За замовчуванням відфільтровані елементи списку відображаються на тому самому місці де був сам список (опція Filter the list, in-place (фильтовать список на месте | фільтрувати список на місці)). Якщо відфільтровані дані необхідно скопіювати в іншу частину робочої книги, то слід відмітити опцію Copy to another location (скопировать результат в другое место | скопіювати результат до іншого розташування), а тоді в полі Copy to: (Поместить результат в диапазон: | Діапазон для результату:) вказати діапазон комірок, куди буде поміщено результат. Для вказання діапазону можна скористатись кнопкою .

Для того, щоб відмінити фільтрування та відобразити весь список елементів, потрібно в пункті меню Data (Данные | Дані) вибрати підпункт Filter (Фильтр | Фільтр), а в ньому - команду Show All (Отобразить все | Відобразити все).

Як вже повідомлялось функція розширеного фільтрування дозволяє використовувати обчислювальні умови, що робить її значно гнучкішою. Обчислювальні умови будуються на одному або декількох обчисленнях і, по суті, обчислюють для списку нове поле. Тому потрібно поміщати нову назву поля в перший рядок діапазону критеріїв.

Наприклад, для списку, зображеного на рисунку 8.40 потрібно вибрати всіх абонентів, для яких сума боргу за минулий та нарахованого за поточний місяць перевищує 50 грн. При цьому, в комірці K1 потрібно ввести назву нового поля “Борг”, а в К2 - формулу =J7+I7>=50. Ця формула встановлює логічне значення True (Истина) або False (Ложь). Вона посилається на J7 та I7 - адреси комірок, які є першими в списку після рядка що містить назви полів. Причому в обчислюваних умовах обов’язково потрібно вказувати відносні адреси комірок (без символів “$”), що йдуть після рядка заголовків полів. Якщо формула посилається на комірки, що розміщені поза межами списку, то обов’язково необхідно вказувати абсолютні адреси комірок. Крім цього, не можна використовувати обчислювані критерії в комірках для вказання умов існучих полів списку. Для цього обов’язково потрібно в діапазоні критеріїв додати ще одну комірку, подібно до того як ми описали в попередньому прикладі.

Зверніть увагу на те, що в описаному вище прикладі можна добитись того самого результату і без використання обчислюваного критерію. Але, в цьому випадку, в самому списку потрібно буде ввести додаткове поле, яке б обчислювало загальний борг абонентів, а тоді в діапазоні критеріїв для даного поля ввести умову “>=50”. Тоді як, завдяки обчислюваним критеріям можна позбавитись необхідності додавати до самого списку зайвої колонки.