Екцел формула: Динамички именовани опсег са ИНДЕКС -

Преглед садржаја

Генеричка формула

=$A$1:INDEX($A:$A,lastrow)

Резиме

Један од начина за стварање динамичког именованог опсега у програму Екцел је употреба функције ИНДЕКС. У приказаном примеру, именовани опсег „подаци“ дефинисан је следећом формулом:

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

који се решава у опсегу $ А $ 2: $ А $ 10.

Напомена: ова формула треба да дефинише именовани опсег који се може користити у другим формулама.

Објашњење

Ова страница приказује пример динамичког именованог опсега створеног помоћу функције ИНДЕКС заједно са функцијом ЦОУНТА. Динамички именовани опсези се аутоматски проширују и скупљају када се подаци додају или уклоне. Они су алтернатива коришћењу Екцел табеле, која се такође мења када се подаци додају или уклањају.

Функција ИНДЕКС враћа вредност на датој позицији у опсегу или низу. ИНДЕКС можете користити за преузимање појединачних вредности или целих редова и колона у опсегу. Оно што ИНДЕКС чини посебно корисним за динамичке именоване опсеге је што заправо враћа референцу. То значи да помоћу ИНДЕКС-а можете створити мешовите референце попут $ А $ 1: А100.

У приказаном примеру, именовани опсег „подаци“ дефинисан је следећом формулом:

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

који се решава у опсегу $ А $ 2: $ А $ 10.

Како функционишу ове формуле

Прво приметите да је ова формула састављена из два дела која се налазе са обе стране оператора опсега (:). Са леве стране имамо почетну референцу за опсег, тврдо кодирану као:

$A$2

Десно је крајња референца за опсег, креирана са ИНДЕКС-ом овако:

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

Овде доводимо ИНДЕКС у целу колону А за низ, а затим користимо функцију ЦОУНТА да бисмо пронашли „последњи ред“ у опсегу. ЦОУНТА овде добро функционише јер у колони А постоји 10 вредности, укључујући ред заглавља. ЦОУНТА стога враћа 10, који иде директно у ИНДЕКС као број реда. Затим ИНДЕКС враћа референцу на $ А $ 10, последњи коришћени ред у опсегу:

INDEX($A:$A,10) // resolves to $A$10

Дакле, коначни резултат формуле је овај опсег:

$A$2:$A$10

Дводимензионални опсег

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

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

Као и раније, ЦОУНТА се користи за откривање „ластров-а“, а ми поново користимо ЦОУНТА-у да бисмо добили „ластцолумн“. Они се достављају у индекс као ред_нум, односно број_колоне.

Међутим, за низ испоручујемо цео радни лист, унет као свих 1048576 редова, што омогућава ИНДЕКС-у да врати референцу у 2Д простору.

Напомена: Екцел 2003 подржава само 65535 редова.

Утврђивање последњег реда

Постоји неколико начина за одређивање последњег реда (последњег релативног положаја) у скупу података, у зависности од структуре и садржаја података на радном листу:

  • Последњи ред у мешовитим подацима са празним местима
  • Последњи ред у мешовитим подацима без празних места
  • Последњи ред у текстуалним подацима
  • Последњи ред у нумеричким подацима

Добри линкови

Импозантни ИНДЕКС (фантастичан чланак Даниела Ферриа)

Занимљиви Чланци...