Динамички именуван опсег на Excel: како да креирате и користите

  • Споделете Го Ова
Michael Brown

Во ова упатство, ќе научите како да креирате динамичен именуван опсег во Excel и како да го користите во формули за автоматски да се вклучат нови податоци во пресметките.

Во минатата недела упатство, разгледавме различни начини за дефинирање на статичен опсег со име во Excel. Статичното име секогаш се однесува на истите ќелии, што значи дека треба рачно да ја ажурирате референцата за опсег секогаш кога додавате нови или отстранувате постоечки податоци.

Ако работите со постојано менување на збир на податоци, можеби ќе сакате да направете го вашиот именуван опсег динамичен, така што тој автоматски се проширува за да се приспособат на новододадените записи или договори за да се исклучат отстранетите податоци. Понатаму во ова упатство, ќе најдете детални упатства чекор-по-чекор за тоа како да го направите ова.

    Како да креирате динамичен опсег со име во Excel

    За за почеток, ајде да изградиме динамички именуван опсег кој се состои од една колона и променлив број на редови. За да го направите тоа, извршете ги овие чекори:

    1. На картичката Формула , во групата Дефинирани имиња , кликнете Дефинирај име . Или, притиснете Ctrl + F3 за да го отворите Excel Name Manger и кликнете на копчето Ново… .
    2. Во секој случај, ќе се отвори полето за дијалог Ново име , каде што ги одредувате следните детали:
      • Во полето Име , напишете го името за вашиот динамички опсег.
      • Во паѓачкото мени Опсег , поставете го опсегот на името. Работна книга (стандардно) се препорачува во повеќетослучаи.
      • Во полето Се однесува на , внесете ја формулата OFFSET COUNTA или INDEX COUNTA.
    3. Кликнете на OK. Готово!

    На следната слика од екранот, дефинираме динамички именуван опсег артикли што ги сместува сите клетки со податоци во колоната А, освен заглавјето на редот :

    Формула OFFSET за дефинирање на динамички именуван опсег на Excel

    Генеричката формула за правење динамички именуван опсег во Excel е следнава:

    OFFSET ( прва_клетка, 0, 0, COUNTA( колона), 1)

    Каде:

    • прва_клетка - првата ставка да биде вклучена во именуваниот опсег, на пример $A$2.
    • колона - апсолутна референца за колоната како $A:$A.

    Во суштината на оваа формула, ја користите функцијата COUNTA за да го добиете бројот на непразни ќелии во колоната од интерес. Тој број оди директно до аргументот висина на функцијата OFFSET(референца, редови, колони, [висина], [ширина]) и кажува колку редови да врати.

    Покрај тоа, тоа е обична Offset формула, каде што:

    • референцата е почетната точка од која го базирате офсетот (првата_клетка).
    • редови и колките и двете се 0, бидејќи нема колони или редови за поместување.
    • ширина е еднаква на 1 колона.

    На пример, за да изградиме динамичен опсег со име за колоната А во Sheet3, почнувајќи од ќелијата A2, ја користиме оваа формула:

    =OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)

    Забелешка. Ако дефиниратединамичен опсег во тековниот работен лист, не треба да го вклучите името на листот во референците, Excel ќе го направи тоа за вас автоматски. Ако градите опсег за некој друг лист, префиксирајте ја референцата на ќелијата или опсегот со името на листот проследено со извичник (како во примерот со формулата погоре).

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

    Друг начин за создавање динамички опсег на Excel е користење на COUNTA во комбинација со функцијата INDEX.

    прва_ќелија:INDEX( колона,COUNTA( колона))

    Оваа формула се состои од два дела:

    • На левата страна од операторот опсег (:), ја ставате тврдокодираната почетна референца како $A$2 .
    • На десната страна, ја користите функцијата INDEX(низа, ред_број, [број_колона]) за да ја дознаете завршната референца. Овде, ја снабдувате целата колона А за низата и користите COUNTA за да го добиете бројот на редот (т.е. бројот на ќелии што не се внесуваат во колоната А).

    За нашата база на податоци за примероци (видете ја скриншот погоре), формулата оди како што следува:

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

    Бидејќи има 5 непразни ќелии во колоната А, вклучувајќи го и заглавието на колоната, COUNTA враќа 5. Последователно, INDEX враќа $A $5, што е последната користена ќелија во колоната А (обично формулата Index враќа вредност, но референтниот оператор ја принудува да врати референца). И бидејќи поставивме $A$2 како почетна точка, конечниот резултат наформулата е опсегот $A$2:$A$5.

    За да го тестирате новосоздадениот динамички опсег, можете да побарате COUNTA да го преземе бројот на ставки:

    =COUNTA(Items)

    Ако сè е направено правилно, резултатот од формулата ќе се промени откако ќе додадете или отстраните ставки во/од списокот:

    Забелешка. Двете формули дискутирани погоре даваат ист резултат, но сепак постои разлика во перформансите за која треба да знаете. OFFSET е испарлива функција која повторно се пресметува со секоја промена на лист. На моќни модерни машини и множества податоци со разумна големина, ова не треба да биде проблем. На машините со мал капацитет и големи збирки податоци, ова може да го забави вашиот Excel. Во тој случај, подобро е да ја користите формулата INDEX за да креирате динамичен опсег со име.

    Како да направите дводимензионален динамички опсег во Excel

    За да изградите дводимензионален именуван опсег, каде што не само бројот на редови, туку и бројот на колони е динамичен, користете ја следнава модификација на формулата INDEX COUNTA:

    прва_ќелија:INDEX($1:$1048576, COUNTA( прва_колона), COUNTA( прв_ред)))

    Во оваа формула, имате две COUNTA функции за да го добиете последниот непразен ред и последната непразна колона ( row_num и column_num аргументи на функцијата INDEX, соодветно). Во аргументот низа , го внесувате целиот работен лист (1048576 редови во Excel 2016 - 2007; 65535 редови во Excel 2003 и пониски).

    И сега,ајде да дефинираме уште еден динамичен опсег за нашиот сет на податоци: опсегот со име продажби што ги вклучува бројките за продажба за 3 месеци (од јануари до март) и автоматски се прилагодува додека додавате нови ставки (редови) или месеци (колони) на табелата.

    Со податоците за продажбата кои започнуваат во колоната Б, ред 2, формулата го добива следниот облик:

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

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

    =SUM(sales)

    =SUM(B2:D5)

    Како што можете да видите на сликата од екранот подолу , двете формули го враќаат истиот збир. Разликата се открива во моментот кога додавате нови записи во табелата: првата формула (со динамичкиот именуван опсег) ќе се ажурира автоматски, додека втората ќе треба да се ажурира рачно со секоја промена. Тоа прави огромна разлика, а?

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

    Во претходните делови од ова упатство, веќе сте виделе неколку едноставни формули кои користат динамички опсези. Сега, ајде да се обидеме да дојдеме до нешто позначајно што ќе ја покаже вистинската вредност на динамичкиот опсег на Excel.

    За овој пример, ќе ја земеме класичната формула INDEX MATCH што врши Vlookup во Excel:

    ИНДЕКС ( повратен_опсег, СПРОВЕДУВАЊЕ ( вредност_пребарувач, опсег на_преглед, 0))

    ...и видете како може да ја направи формулата уште помоќна со употреба надинамични именувани опсези.

    Како што е прикажано на сликата од екранот погоре, се обидуваме да изградиме контролна табла, каде што корисникот внесува име на ставка во H1 и ја добива вкупната продажба за таа ставка во H2. Нашата табела со примероци создадена за демонстративни цели содржи само 4 ставки, но во вашите реални листови може да има стотици, па дури и илјадници редови. Понатаму, нови ставки може да се додаваат на дневна основа, така што користењето референци не е опција, бидејќи ќе треба да ја ажурирате формулата одново и одново. Јас сум премногу мрзлив за тоа! :)

    За да ја принудиме формулата да се прошири автоматски, ќе дефинираме 3 имиња: 2 динамички опсези и 1 статичко именувана клетка:

    Опсег_пребарување: =$A$2:INDEX($ A:$A, COUNTA($A:$A))

    Повратен_опсег: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Барај_вредност: =$H$1

    Забелешка. Excel ќе го додаде името на тековниот лист на сите референци, па пред да ги креирате имињата, погрижете се да го отворите листот со вашите изворни податоци.

    Сега, почнете да ја пишувате формулата во H1. Кога станува збор за првиот аргумент, напишете неколку знаци од името што сакате да го користите и Excel ќе ги прикаже сите достапни имиња што се совпаѓаат. Кликнете двапати на соодветното име и Excel веднаш ќе го вметне во формулата:

    Пополнетата формула изгледа вака:

    =INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))

    И работи совршено!

    Штом ќе додадете нови записи на табелата, тие ќе бидат вклучени во вашите пресметки наеднаш, без да мора да направите ниту една промена на формулата! И ако некогаш треба да ја префрлите формулата во друга датотека на Excel, едноставно креирајте ги истите имиња во работната книга одредиштето, копирајте ја/залепете ја формулата и продолжете да работи веднаш.

    Совет. Освен што ги прави формулите поиздржливи, динамичките опсези се корисни за создавање динамични паѓачки списоци.

    Вака создавате и користите динамички опсези со име во Excel. За да ги погледнете подетално формулите дискутирани во ова упатство, добредојдени сте да ја преземете нашата примерок на работната книга со динамичен опсег на Excel. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.