Прескочи на основното съдържание

Как да създадете динамичен именуван диапазон в Excel?

Автор: Xiaoyang Последна промяна: 2013-12-09

Обикновено, Именувани диапазони са много полезни за потребителите на Excel, можете да дефинирате поредица от стойности в колона, да дадете име на тази колона и след това можете да се обърнете към този диапазон по име, вместо към препратките към неговите клетки. Но в повечето случаи трябва да добавите нови данни, за да разширите стойностите на данните на вашия препоръчан диапазон в бъдеще. В този случай трябва да се върнете към формули > Мениджър на имена и предефинирайте диапазона, за да включите новата стойност. За да избегнете това, можете да създадете динамичен наименуван диапазон, което означава, че не е необходимо да коригирате препратките към клетки всеки път, когато добавяте нов ред или колона към списъка.

Създайте динамичен наименуван диапазон в Excel, като създадете таблица

Създайте динамичен наименуван диапазон в Excel с функция

Създайте динамичен наименуван диапазон в Excel с VBA код


стрелка син десен балон Създайте динамичен наименуван диапазон в Excel, като създадете таблица

Ако използвате Excel 2007 или по-нови версии, най-лесният начин да създадете динамичен наименуван диапазон е да създадете наименована таблица на Excel.

Да кажем, че имате диапазон от следващи данни, които трябва да станат динамичен наименуван диапазон.

doc-динамичен-обхват1

1. Първо, ще дефинирам имена на диапазони за този диапазон. Изберете диапазона A1:A6 и въведете името Дата в Име Box, След това натиснете Въведете ключ. За да дефинирате име за диапазон B1: B6 като Saleprice по същия начин. В същото време създавам формула =сума(продажна цена) в празна клетка вижте екранната снимка:

doc-динамичен-обхват2

2. Изберете диапазона и щракнете Поставете > Маса, вижте екранна снимка:

doc-динамичен-обхват3

3. В Създаване на таблица поле за подкана, проверете Моята таблица има заглавки (ако диапазонът няма заглавки, махнете отметката), щракнете OK и данните за диапазона са преобразувани в таблица. Вижте екранни снимки:

doc-динамичен-обхват4 -2 doc-динамичен-обхват5

4. И когато въведете нови стойности след данните, посоченият диапазон автоматично ще се коригира и създадената формула също ще бъде променена. Вижте следните екранни снимки:

doc-динамичен-обхват6 -2 doc-динамичен-обхват7

Забележки:

1. Вашите нови въведени данни трябва да са в съседство с горните данни, това означава, че няма празни редове или колони между новите данни и съществуващите данни.

2. В таблицата можете да вмъквате данни между съществуващите стойности.


стрелка син десен балон Създайте динамичен наименуван диапазон в Excel с функция

В Excel 2003 или по-стара версия първият метод няма да е наличен, така че ето друг начин за вас. Следното ИЗМЕСТВАНЕ( ) функцията може да направи тази услуга за вас, но е донякъде обезпокоителна. Да предположим, че имам диапазон от данни, който съдържа имената на диапазони, които съм дефинирал, например, A1: A6 името на диапазона е Дата, и B1: B6 името на диапазона е Продажна цена, в същото време създавам формула за Продажна цена. Вижте екранна снимка:

doc-динамичен-обхват2

Можете да промените имената на диапазони на имена на динамични диапазони със следните стъпки:

1. Отидете на щракване формули > Мениджър на имена, вижте екранна снимка:

doc-динамичен-обхват8

2. В Мениджър на имена диалогов прозорец, изберете елемента, който искате да използвате, и щракнете редактирам бутон.

doc-динамичен-обхват9

3. В изскочилото Редактиране на име въведете тази формула =ОТМЕСТ(Лист1!$A$1, 0, 0, COUNTA($A:$A), 1) в Отнася се до текстово поле, вижте екранна снимка:

doc-динамичен-обхват10

4, След това кликнете OKи след това повторете стъпка 2 и стъпка 3, за да копирате тази формула =ОТМЕСТ(Лист1!$B$1, 0, 0, COUNTA($B:$B), 1) в Отнася се до текстово поле за Продажна цена име на диапазон.

5. И динамичните именувани диапазони са създадени. Когато въведете нови стойности след данните, посоченият диапазон ще се коригира автоматично и създадената формула също ще бъде променена. Вижте екранни снимки:

doc-динамичен-обхват6 -2 doc-динамичен-обхват7

Забележка: Ако в средата на вашия диапазон има празни клетки, резултатът от вашата формула ще бъде грешен. Това е така, защото непразните клетки не се броят, така че вашият диапазон ще бъде по-къс, отколкото трябва, и последните клетки в диапазона ще бъдат изключени.

Съвет: обяснение за тази формула:

  • =OFFSET(референция,редове,колони,[височина],[ширина])
  • -1
  • =ОТМЕСТ(Лист1!$A$1, 0, 0, COUNTA($A:$A), 1)
  • справка съответства на позицията на началната клетка в този пример Лист1!$A$1;
  • ред се отнася до броя редове, които ще преместите надолу спрямо началната клетка (или нагоре, ако използвате отрицателна стойност), в този пример 0 показва, че списъкът ще започне от първия ред надолу
  • колона съответства на броя на колоните, които ще преместите вдясно спрямо началната клетка (или вляво, като използвате отрицателна стойност), в горната примерна формула 0 показва разширяване на 0 колони вдясно.
  • [височина] съответства на височината (или броя на редовете) на диапазона, започващ от коригираната позиция. $A:$A, ще преброи всички елементи, въведени в колона A.
  • [ширина] съответства на ширината (или броя на колоните) на диапазона, започващ от коригираната позиция. В горната формула списъкът ще бъде широк 1 колона.

Можете да промените тези аргументи според вашите нужди.


стрелка син десен балон Създайте динамичен наименуван диапазон в Excel с VBA код

Ако имате няколко колони, можете да повторите и въведете индивидуална формула за всички останали колони, но това ще бъде дълъг, повтарящ се процес. За да улесните нещата, можете да използвате код, за да създадете автоматично динамичния наименуван диапазон.

1. Активирайте своя работен лист.

2. Задръжте натиснат ALT + F11 ключове и отваря Прозорец на Microsoft Visual Basic за приложения.

3. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.

Vba код: създаване на динамичен наименуван диапазон

Sub CreateNamesxx()
'Update 20131128
Dim wb As Workbook, ws As Worksheet
Dim lrow As Long, lcol As Long, i As Long
Dim myName As String, Start As String
Const Rowno = 1
Const Colno = 1
Const Offset = 1
On Error Resume Next
Set wb = ActiveWorkbook
Set ws = ActiveSheet
lcol = ws.Cells(Rowno, 1).End(xlToRight).Column
lrow = ws.Cells(Rows.Count, Colno).End(xlUp).Row
Start = Cells(Rowno, Colno).Address
wb.Names.Add Name:="lcol", RefersTo:="=COUNTA($" & Rowno & ":$" & Rowno & ")"
wb.Names.Add Name:="lrow", RefersToR1C1:="=COUNTA(C" & Colno & ")"
wb.Names.Add Name:="myData", RefersTo:="=" & Start & ":INDEX($1:$65536," & "lrow," & "Lcol)"
For i = Colno To lcol
    myName = Replace(Cells(Rowno, i).Value, " ", "_")
    If myName <> "" Then
        wb.Names.Add Name:=myName, RefersToR1C1:="=R" & Rowno + Offset & "C" & i & ":INDEX(C" & i & ",lrow)"
    End If
Next
End Sub

4. След това натиснете F5 ключ за изпълнение на кода и ще бъдат генерирани някои динамични наименувани диапазони, които са наименувани със стойностите на първия ред и също така създава динамичен диапазон, наречен MyData който обхваща всички данни.

5. Когато въведете нови стойности след редовете или колоните, диапазонът също ще бъде разширен. Вижте екранни снимки:

doc-динамичен-обхват12
-1
doc-динамичен-обхват13

Забележки:

1. С този код имената на диапазони не се показват в Име Box, за да виждам и използвам имената на диапазони удобно, инсталирах Kutools за Excel, Със своята Navigation Pane, създадените имена на динамични диапазони са изброени.

2. С този код целият диапазон от данни може да бъде разширен вертикално или хоризонтално, но за да запомните, не трябва да има празни редове или колони между данните, когато въвеждате нови стойности.

3. Когато използвате този код, диапазонът от данни трябва да започва от клетка A1.


Свързана статия:

Как да актуализирате автоматично диаграма след въвеждане на нови данни в Excel?

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
really, really not helpful
This comment was minimized by the moderator on the site
please help i am trying to create a dynamic named range on excel 2016 typing "=offset(DATAENTRY!$B$6,,,counta(DATAENTRY!$B$6:$B$13))" but still it gives me an error saying it is not a formula.
This comment was minimized by the moderator on the site
You are a very good teacher: 1) step-by-step approach; 2) you do not bore the student with obvious material or conclusions; 3) yet you include all necessary material. I look forward to more tutorials from you.
This comment was minimized by the moderator on the site
Thanks for good article
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations