Динамічний іменований діапазон Excel: як створити та використовувати

  • Поділитися Цим
Michael Brown

У цьому уроці ви дізнаєтеся, як створити динамічний іменований діапазон в Excel і як використовувати його у формулах для автоматичного включення нових даних у розрахунки.

У минулому уроці ми розглянули різні способи визначення діапазону зі статичним іменем в Excel. Статичне ім'я завжди посилається на ті самі клітинки, а це означає, що вам доведеться оновлювати посилання на діапазон вручну щоразу, коли ви додаєте нові або видаляєте наявні дані.

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

    Як створити динамічний іменований діапазон в Excel

    Для початку побудуємо динамічний іменований діапазон, що складається з одного стовпця та змінної кількості рядків. Для цього виконаємо такі дії:

    1. Про це йдеться на Формула у вкладці Визначені назви групу, натисніть Визначити ім'я Або натисніть Ctrl + F3, щоб відкрити диспетчер імен Excel, і натисніть кнопку Новий... кнопку.
    2. У будь-якому випадку, в Нова назва відкриється діалогове вікно, в якому необхідно вказати наступні реквізити:
      • В рамках проекту Ім'я та прізвище введіть назву вашого динамічного діапазону.
      • В рамках проекту Сфера застосування встановіть область видимості імені. Робочий зошит (за замовчуванням) рекомендується в більшості випадків.
      • В рамках проекту Відноситься до введіть формулу OFFSET COUNTA або INDEX COUNTA.
    3. Натисни ОК. Готово!

    На наступному скріншоті ми визначаємо динамічний іменований діапазон предмети яка вміщує всіх комірки з даними у колонці А, крім рядка заголовка:

    Формула OFFSET для визначення динамічного іменованого діапазону Excel

    Загальна формула для створення динамічного іменованого діапазону в Excel виглядає наступним чином:

    OFFSET( перша_комірка , 0, 0, COUNTA( колонка ), 1)

    Де:

    • перша_комірка - перший елемент, який повинен бути включений в іменований діапазон, наприклад $A$2.
    • колонка - абсолютне посилання на стовпець на зразок $A:$A.

    В основі цієї формули лежить використання функції COUNTA для отримання кількості непустих клітинок у стовпчику, який вас цікавить. Це число переходить безпосередньо до висота аргумент функції OFFSET(reference, rows, cols, [height], [width]), який вказує, скільки рядків потрібно повернути.

    А далі - звичайна формула офсету, де:

    • посилання початкова точка, від якої відраховується зміщення (перша_комірка).
    • ряди і колони дорівнюють 0, оскільки немає ні стовпців, ні рядків для зсуву.
    • ширина дорівнює 1 колонці.

    Наприклад, для побудови динамічного іменованого діапазону для стовпця А на Аркуші3, починаючи з комірки А2, використовуємо таку формулу:

    =OFFSET(Лист3!$A$2, 0, 0, COUNTA(Лист3!$A:$A), 1)

    Примітка: Якщо ви визначаєте динамічний діапазон на поточному аркуші, то ім'я аркуша в посиланнях вказувати не потрібно, Excel зробить це за вас автоматично. Якщо ж ви будуєте діапазон для іншого аркуша, то до посилання на комірку або діапазон додайте ім'я аркуша, за яким слідує знак оклику (як у прикладі формули вище).

    INDEX формула для створення динамічного іменованого діапазону в Excel

    Іншим способом створення динамічного діапазону Excel є використання функції COUNTA в поєднанні з функцією INDEX.

    перша_комірка :INDEX( колонка "COUNTA! колонка ))

    Ця формула складається з двох частин:

    • У лівій частині оператора діапазону (:) ставиться жорстко закодоване початкове посилання, наприклад, $A$2.
    • Праворуч ви використовуєте функцію INDEX(array, row_num, [column_num]), щоб визначити кінцеве посилання. Тут ви надаєте весь стовпець A для масиву і використовуєте COUNTA, щоб отримати номер рядка (тобто кількість невведених комірок у стовпці A).

    Для нашого прикладу набору даних (див. скріншот вище) формула виглядає наступним чином:

    =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Оскільки в стовпці А є 5 непустих комірок, включаючи заголовок стовпця, то функція COUNTA повертає 5. Отже, функція INDEX повертає $A$5, яка є останньою використаною коміркою в стовпці А (зазвичай індексна формула повертає значення, але оператор посилання змушує її повертати посилання). А оскільки ми встановили $A$2 в якості початкової точки, то кінцевим результатом формули є діапазон $A$2:$A$5.

    Щоб перевірити новостворений динамічний діапазон, ви можете попросити COUNTA отримати кількість елементів:

    =COUNTA(Items)

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

    Примітка. Дві формули, розглянуті вище, дають однаковий результат, однак є різниця в продуктивності, про яку слід знати. OFFSET - це нестабільна функція, яка перераховується при кожній зміні на аркуші. На потужних сучасних машинах і наборах даних розумного розміру це не повинно бути проблемою. На машинах з низькою потужністю і великими наборами даних це може сповільнити роботу Excel. У такому випадку вам потрібно будедля створення динамічного іменованого діапазону краще використовувати формулу INDEX.

    Як зробити двовимірний динамічний діапазон в Excel

    Для побудови двовимірного іменованого діапазону, де динамічно змінюється не тільки кількість рядків, але і кількість стовпців, використовується наступна модифікація формули СЧЕТЕСЛИ:

    перша_комірка :INDEX($1:$1048576, COUNTA( перша_колонка ), COUNTA( перший_ряд )))

    У цій формулі є дві функції COUNTA для отримання останнього непорожнього рядка і останнього непорожнього стовпця ( row_num і column_num аргументи функції INDEX відповідно). В масив В аргумент подається весь робочий аркуш (1048576 рядків в Excel 2016 - 2007; 65535 рядків в Excel 2003 і нижче).

    А тепер визначимо ще один динамічний діапазон для нашого набору даних: діапазон з назвою продаж яка містить дані про продажі за 3 місяці (січень-березень) і автоматично коригується при додаванні нових позицій (рядків) або місяців (стовпців) до таблиці.

    З даними про продажі, що починаються з колонки B, рядка 2, формула набуває наступного вигляду:

    =$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))

    Щоб переконатися, що ваш динамічний діапазон працює так, як потрібно, введіть десь на аркуші наступні формули:

    =SUM(продажі)

    =SUM(B2:D5)

    Як ви можете бачити на скріншоті нижче, обидві формули повертають однакову суму. Різниця проявляється в момент додавання нових записів до таблиці: перша формула (з динамічним діапазоном імен) буде оновлюватися автоматично, тоді як другу доведеться оновлювати вручну при кожній зміні. Це величезна різниця, чи не так?

    Як використовувати динамічні іменовані діапазони у формулах Excel

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

    Для цього прикладу ми візьмемо класичну формулу ПІДБІР ПО ІНДЕКСУ, яку виконує Vlookup в Excel:

    ІНДЕКС ( діапазон_повернення MATCH ( lookup_value , діапазон_пошуку , 0))

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

    Як показано на скріншоті вище, ми намагаємося побудувати інформаційну панель, де користувач вводить назву товару в H1 і отримує загальну суму продажів для цього товару в H2. Наш приклад таблиці, створений для демонстрації, містить лише 4 позиції, але у ваших реальних таблицях можуть бути сотні і навіть тисячі рядків. Крім того, нові товари можуть додаватися щодня, тому використання посилань не єтому що вам доведеться оновлювати формулу знову і знову, а мені ліньки :)

    Для того, щоб формула розгорталася автоматично, ми визначимо 3 імені: 2 динамічних діапазони та 1 статичну комірку з іменем:

    Діапазон_пошуку: =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Lookup_value: =$H$1

    Примітка: Excel додасть назву поточного аркуша до всіх посилань, тому перед створенням назв обов'язково відкрийте аркуш з вихідними даними.

    Тепер почніть вводити формулу в H1. Коли справа дійде до першого аргументу, введіть кілька символів імені, яке ви хочете використовувати, і Excel покаже всі доступні відповідні імена. Двічі клацніть відповідне ім'я, і Excel відразу ж вставить його у формулу:

    Завершена формула виглядає наступним чином:

    =INDEX(Діапазон_повернення, MATCH(Значення_пошуку, Діапазон_пошуку, 0))

    І працює бездоганно!

    Як тільки ви додасте нові записи в таблицю, вони відразу ж будуть включені у ваші розрахунки, без необхідності вносити жодних змін у формулу! А якщо вам коли-небудь знадобиться перенести формулу в інший файл Excel, просто створіть такі ж імена в цільовій книзі, скопіюйте/вставте формулу, і вона одразу ж запрацює.

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

    Ось так створюються і використовуються динамічні іменовані діапазони в Excel. Щоб більш детально розглянути формули, розглянуті в цьому уроці, ви можете завантажити наш зразок книги динамічних іменованих діапазонів Excel. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.