Зміст
Сьогодні я покажу, як створити динамічний список на основі одного або декількох критеріїв в Excel.
Завантажити Практичний посібник
Динамічний список на основі критеріїв.xlsx
Що таке динамічний список в Excel?
Динамічний список - це список, який створюється з набору даних і автоматично оновлюється при зміні будь-якого значення у вихідному наборі даних або при додаванні нових значень до вихідного набору даних.
На наведеному зображенні ми маємо список прізвищ усіх студентів, які отримали бали, що перевищують 60 на іспиті.
Тепер, якщо змінити позначки Дженніфер Марло з 68 до 58 і додати нового студента на ім'я Росс Сміт з оцінками 81 в таблиці, список підлаштується автоматично.
Це так званий динамічний список.
3 Способи створення динамічного списку в Excel на основі критеріїв
Тут ми маємо набір даних з Студентські квитки, Імена, і Знаки деяких учнів у школі, яку називають дитячим садком "Соняшник".
Наше завдання сьогодні - скласти динамічний список на основі критеріїв з цього набору даних. Ми будемо використовувати як один, так і декілька критеріїв.
1. використання функцій ФІЛЬТР та СРЗНАЧ (для нових версій Excel)
Перш за все, ми будемо використовувати комбінацію ФІЛЬТР , OFFSET і COUNTA функції Excel.
На сьогоднішній день, на жаль, це не так. ФІЛЬТР функція доступна в Office 365 Так що це тільки для тих, у кого є Office 365 підписку.
Випадок 1: На основі єдиного критерію
Спробуємо скласти динамічний список студентів, середній бал яких більше або дорівнює 60 .
Ви можете скористатися цією формулою:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Як бачите, у нас є список всіх студентів, які отримали більше 60 .
І очевидно, що це динамічний список, ви змінюєте будь-яке значення в наборі даних або додаєте будь-яке нове значення в набір даних.
Список буде коригуватися автоматично.
Пояснення до формули:
COUNTA(C:C)
повертає кількість рядків у стовпці C, які не є пустими.COUNTA(C:C)-1
повертає кількість рядків, які мають значення без символу Заголовок колонки ( Ім'я студента у цьому прикладі).- Якщо у вас немає Заголовок колонки використання
COUNTA(C:C)
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
починається з комірки C5 (Ім'я першого студента) і повертає діапазон імен всіх студентів.- На сьогоднішній день, на жаль, це не так. OFFSET у поєднанні з функцією Функція COUNTIF було використано для того, щоб формула залишалася динамічною. Якщо до набору даних додається ще один учень, то формула
COUNTA(C:C)-1
за формулою збільшиться на 1 та OFFSET функція буде включати в себе студента. - Так само,
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
прибутки ПРАВДА для всіх оцінок, які більші або дорівнюють 60 . - Нарешті,
FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
повертає список всіх студентів, які отримали оцінки більше ніж 60 . - Якщо до набору даних додається будь-який новий студент,
COUNTA(C:C)-1
збільшується на 1 , а також "Про захист прав людини і основоположних свобод ФІЛЬТР функція оновлює розрахунок, включаючи його. - Таким чином, формула завжди залишається динамічною.
Зауважте:
Якщо ви хочете отримати оцінки разом з іменами в списку, просто змініть п'ятий аргумент першого OFFSET функція від 1 до 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Випадок 2: На основі декількох критеріїв
Спробуємо цього разу за кількома критеріями.
Спробуємо скласти динамічний список студентів, які отримали бали більше або дорівнюють 60, але ідентифікаційний код яких менше або дорівнює 200 .
Ви можете скористатися цією формулою:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Як бачите, ми отримали список всіх студентів, які отримали бали більше, ніж 60 і мають ПОСВІДЧЕННЯ ОСОБИ s менше, ніж 200 .
І не треба говорити, що це динамічний список.
Якщо ви зміните будь-яке значення або додасте нового учня до набору даних, список автоматично скоригується.
Пояснення до формули:
- Тут ми перемножили два динамічних діапазони критеріїв,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- Якщо у вас більше ніж 2 критеріїв, перемножити всі діапазони критеріїв таким же чином.
- Решта аналогічна до попереднього прикладу (одиничних критеріїв). OFFSET у поєднанні з функцією COUNTA була використана функція для збереження динамічності формули.
Зауважте:
Якщо ви хочете побачити всі колонки в списку ( Колонки B, C, і D у цьому прикладі), змініть перший аргумент першого OFFSET функцію до першого стовпчика ( B5 в даному прикладі), а п'ятий аргумент до загальної кількості стовпців ( 3 у цьому прикладі).
=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)* *FILTER
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Читати далі: Створення динамічного списку в Excel з таблиці (3 простих способи)
2. Використання INDEX-MATCH з іншими функціями (для старих версій)
Ті, хто не має Office 365 підписка не може використовувати наведену вище формулу.
Для тих, хто користується старою версією Excel, показую більш складний спосіб, використовуючи INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, і КОУНТИФИ Зверніть увагу, що ці формули є формулами масивів, тому для їх застосування в старих версіях Excel потрібно натиснути клавішу Ctrl+Shift+Enter замість "Enter".
Випадок 1: На основі єдиного критерію
Формула для створення динамічного списку студентів, які набрали більше або дорівнює 60 балів, буде такою:
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Як бачите, ми знову отримали імена всіх студентів, які набрали більше або дорівнюють 60 .
Цього разу ми розташували їх у порядку зростання номерів.
І так, список динамічний: додайте нового студента до набору даних або змініть оцінки будь-якого студента в наборі даних.
Список буде коригуватися автоматично.
Пояснення до формули:
- Тут C:C стовпець, з якого ми хочемо витягти вміст списку ( Ім'я студента У цьому прикладі). Ви використовуєте свій.
- D:D стовпчик, в якому знаходиться критерій ( Середні бали У цьому прикладі). Ви використовуєте свій.
- C5 і D5 це комірки, з яких були розпочаті мої дані (трохи нижче Заголовки колонок А ти користуйся своїм.
- ">=60" є моїм критерієм (більше або дорівнює 60 У цьому прикладі). Ви використовуєте свій.
- За винятком цих кількох змін, залиште решту формули без змін і використовуйте її у своєму наборі даних. Ви отримаєте динамічний список відповідно до бажаного критерію.
Випадок 2: На основі декількох критеріїв
На сьогоднішній день, на жаль, це не так. INDEX-MATCH формула для динамічного списку за кількома критеріями трохи складніша, але я її показую.
Формула для отримання прізвищ студентів, які отримали бали більше або дорівнюють 60 але мають ПОСВІДЧЕННЯ ОСОБИ s менше, ніж 200 буде;
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*)
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Пояснення до формули:
- Тут C:C стовпець, з якого ми хочемо витягти вміст списку ( Ім'я студента У цьому прикладі). Ви використовуєте свій.
- Б:Б і D:D стовпчики, в яких знаходяться критерії ( Студентський квиток і Середні бали У цьому прикладі). Ви використовуєте свій.
- B5, C5, і D5 це комірки, з яких були розпочаті мої дані (трохи нижче Заголовки колонок А ти користуйся своїм.
- Я тут перемножив два критерії:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
Якщо у вас більше двох критеріїв, помножте їх відповідно. - Я знову використав два критерії в цьому документі КОУНТИФИ функцію:
COUNTIFS(B:B,"=60")
. Ви використовуйте свої відповідно. - Решту формули залиште без змін і використовуйте її у своєму наборі даних. Ви отримаєте динамічний список з декількома критеріями.
Докладніше: Як створити динамічний список перевірки даних за допомогою VBA в Excel
3. створення динамічного випадаючого списку на основі критеріїв за допомогою інструменту перевірки даних
Тепер, коли ми створили динамічний список, за бажанням ви можете створити динамічний випадаючий список в будь-яку клітинку робочого аркуша.
- Щоб створити динамічний список, що випадає, виділіть будь-яку комірку на аркуші і перейдіть на вкладку Дані> Перевірка даних> Перевірка даних в рамках Інструменти даних розділ.
- Ви отримаєте Перевірка даних У діалоговому вікні Дозволити Варіант, оберіть Список А в рамках Джерело введіть посилання на першу комірку, в якій знаходиться список на аркуші, разом із символом Хеш-тег (#) ( $E$5# у цьому прикладі).
- Потім натисніть ГАРАЗД. У вибраній комірці з'явиться випадаючий список, який виглядає наступним чином.
Докладніше: Як створити динамічний випадаючий список за допомогою VBA в Excel
Як створити динамічний унікальний список в Excel на основі критеріїв
У цьому розділі ми покажемо, як створити унікальний список в Excel на основі критеріїв. Ми будемо використовувати комбінацію УНІКАЛЬНИЙ і ФІЛЬТР Ми модифікували набір даних і додали улюблені ігри кожного студента. Тепер хочемо дізнатися назви ігор, видаливши дублікати з критеріями. Критеріями є середні бали студентів, які повинні бути більшими за 60 .
📌 Сходинки:
- Виведіть формулу на основі комбінації УНІКАЛЬНИЙ і ФІЛЬТР функціонує на Комірка G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Ми отримуємо унікальний список на основі критеріїв.
Пояснення до формули:
- FILTER(E5:E25,(D5:D25>60)
При цьому фільтруються значення Діапазон E5:E25 з умовою, що середній бал повинен бути вище 60 .
Результат: [Теніс, волейбол, регбі, теніс, футбол, регбі, регбі, футбол].
- UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Повертає всі унікальні значення з попереднього результату.
Результат: [теніс, волейбол, регбі, футбол].
Висновок
Використовуючи ці методи, ви можете створити динамічний список на основі одного або декількох критеріїв в будь-якому наборі даних в Excel. Будь ласка, ознайомтеся з нашим сайтом ExcelWIKI та висловлюйте свої пропозиції у полі для коментарів.