Преглед садржаја
У овом водичу ћете пронаћи бројне примере формула који показују најефикасније коришћење ИНДЕКС-а у Екцел-у.
Од свих Екцел функција чија је моћ често потцењена и недовољно искоришћена, ИНДЕКС би се дефинитивно сврстао негде у првих 10. У међувремену, ова функција је паметна, гипка и свестрана.
Дакле, шта је функција ИНДЕКС у Екцел-у? У суштини, ИНДЕКС формула враћа референцу ћелије из датог низа или опсега. Другим речима, користите ИНДЕКС када знате (или можете да израчунате) позицију елемента у опсегу и желите да добијете стварну вредност тог елемента.
Ово може звучати мало тривијално, али једном ако схватите прави потенцијал функције ИНДЕКС, она би могла да унесе кључне промене у начин на који израчунавате, анализирате и представљате податке у вашим радним листовима.
Екцел функција ИНДЕКС - синтакса и основна употреба
Постоје две верзије функције ИНДЕКС у Екцел-у – облик низа и референтни образац. Оба облика се могу користити у свим верзијама Мицрософт Екцел-а 365 - 2003.
Образац низа ИНДЕКС
Образац ИНДЕКС низа враћа вредност одређеног елемента у опсегу или низу на основу реда и бројеве колона које наведете.
ИНДЕКС(низ, број_реда, [број_колоне])- низ - је опсег ћелија, именовани опсег или табела.
- број_реда - је број реда у низу из којег се враћа вредност. Ако је ред_бројвраћа вредност, али у овој формули, референтни оператор (:) га приморава да врати референцу). И пошто је $А$1 наша почетна тачка, коначни резултат формуле је опсег $А$1:$А$9.
Следећи снимак екрана показује како можете да користите такву формулу индекса да бисте креирали динамичко испуштање. доња листа.
Савет. Најлакши начин да направите динамички ажурирану падајућу листу је да направите именовану листу на основу табеле. У овом случају, неће вам требати никакве сложене формуле пошто су Екцел табеле динамички опсези саме по себи.
Можете да користите и функцију ИНДЕКС да креирате зависне падајуће листе, а следећи водич објашњава кораке: Прављење каскадне падајуће листе у Екцел-у.
5. Моћни Влоокупи са ИНДЕКС / МАТЦХ
Обављање вертикалних прегледа - ово је место где функција ИНДЕКС заиста блиста. Ако сте икада покушали да користите Екцел ВЛООКУП функцију, добро сте свесни њених бројних ограничења, као што је немогућност повлачења вредности из колона лево од колоне за тражење или ограничење од 255 знакова за вредност тражења.
Веза ИНДЕКС/МАЦХ супериорнија је од ВЛООКУП-а у многим аспектима:
- Нема проблема са левим прегледима.
- Нема ограничења за величину вредности тражења.
- Нема сортирања потребно (ВЛООКУП са приближним подударањем захтева сортирање колоне за тражење у растућем редоследу).
- Слободни сте да убацујете и уклањате колоне у табели без ажурирањасваку придружену формулу.
- И последње, али не и најмање важно, ИНДЕКС / МАТЦХ не успорава ваш Екцел као што то чине вишеструки Влоокупи.
Користите ИНДЕКС / МАТЦХ на следећи начин :
=ИНДЕКС ( колона за враћање вредности од , (ПОДРЖАВА ( вредност тражења , колона за тражење према , 0))За на пример, ако окренемо нашу изворну табелу тако да Име планете постане крајња десна колона, формула ИНДЕКС/ПОДРЖАВАЊЕ и даље без проблема преузима одговарајућу вредност из леве колоне.
За више савета и примера формуле, погледајте водич за Екцел ИНДЕКС/ПОДРЖАВАЊЕ.
6. Екцел формула ИНДЕКС да бисте добили 1 опсег са листе опсега
Још једна паметна и моћна употреба функције ИНДЕКС у Екцел-у је могућност добијања једног опсега са листе опсега.
Претпоставимо да имате неколико листа са различитим бројем ставки у свакој. Верујте ми или не, можете израчунати просек или сумирати вредности у било ком изабраном опсегу помоћу једне формуле.
Прво, креирате е именовани опсег за сваку листу; нека то буду ПланетеД и МесециД у овом примеру:
Надам се да горња слика објашњава разлоге који стоје иза имена опсега : ) БТВ, табела Месеци је далеко од потпуне, постоји 176 познатих природних месеца у нашем Сунчевом систему, само Јупитер тренутно има 63, и даље. За овај пример, изабрао сам насумично 11, па... можда не баш случајно -месеци са најлепшим именима : )
Извините на дигресији, вратимо се на нашу формулу ИНДЕКС. Под претпоставком да је ПланетсД ваш опсег 1 и МоонсД је опсег 2, а ћелија Б1 је место где сте ставили број опсега, можете користити следећу индексну формулу да израчунате просек вредности у изабрани именовани опсег:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Обратите пажњу да сада користимо Референтни облик функције ИНДЕКС, а број у последњем аргументу (број_површине) говори формули који опсег треба пицк.
На снимку екрана испод, ареа_нум (ћелија Б1) је постављена на 2, тако да формула израчунава просечни пречник Месеца јер је опсег Месеци на другом месту у референтном аргументу.
Ако радите са више листа и не желите да се трудите да памтите повезане бројеве, можете користити угнежђену ИФ функцију да то уради уместо вас :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
У функцији ИФ користите нека једноставна и лако памтљива имена листа које желите да ваши корисници укуцају у ћелију Б1 уместо бројева. Имајте ово на уму, да би формула исправно функционисала, текст у Б1 треба да буде потпуно исти (неосетљив на велика и мала слова) као у параметрима ИФ-а, иначе ће ваша формула индекса бацити грешку #ВАЛУЕ.
Да бисте формулу учинили још једноставнијом за корисника, можете користити проверу ваљаности података да направите падајућу листу са унапред дефинисаним именима како бисте спречили правописне грешке игрешке у штампању:
Коначно, да би ваша ИНДЕКС формула била апсолутно савршена, можете је приложити у функцију ИФЕРРОР која ће од корисника тражити да одабере ставку са падајуће листе ако још увек није направљен ниједан избор:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
Овако користите ИНДЕКС формуле у Екцел-у. Надам се да су вам ови примери показали начин да искористите потенцијал функције ИНДЕКС у вашим радним листовима. Хвала вам на читању!
Такође видети: Како направити Лоокуп у Екцелу: функције и примери формулаизостављено, број_колоне је обавезан. - број_колоне - је број колоне из које се враћа вредност. Ако је цолумн_нум изостављен, ров_нум је обавезан.
На пример, формула =INDEX(A1:D6, 4, 3)
враћа вредност на пресеку 4. реда и 3. колоне у опсегу А1:Д6, што је вредност у ћелији Ц4 .
Да бисте стекли представу о томе како формула ИНДЕКС функционише на стварним подацима, погледајте следећи пример:
Уместо да уносите ред и бројеве колона у формули, можете навести референце ћелија да бисте добили универзалнију формулу: =INDEX($B$2:$D$6, G2, G1)
Дакле, ова формула ИНДЕКС враћа број ставки тачно на пресеку броја производа наведеног у Г2 (број_реда ) и број недеље унет у ћелију Г1 (број_колоне).
Савет. Употреба апсолутних референци ($Б$2:$Д$6) уместо релативних референци (Б2:Д6) у аргументу низа олакшава копирање формуле у друге ћелије. Алтернативно, можете да конвертујете опсег у табелу ( Цтрл + Т ) и да се позивате на њега по имену табеле.
Форма ИНДЕКС низа – ствари које треба запамтити
- Ако се аргумент низа састоји од само једног реда или колоне, можете или не морате навести одговарајући аргумент број_реда или број_колоне.
- Ако аргумент низа укључује више од једног реда и ров_нум је изостављен или постављен на 0, функција ИНДЕКС враћа низ целе колоне. Слично, ако низ укључује више од једногколона и аргумент цолумн_нум је изостављен или постављен на 0, формула ИНДЕКС враћа цео ред. Ево примера формуле који показује ово понашање.
- Аргументи ров_нум и цолумн_нум морају се односити на ћелију унутар низа; у супротном, ИНДЕКС формула ће вратити #РЕФ! грешка.
ИНДЕКС референтни образац
Референтни образац Екцел функције ИНДЕКС враћа референцу ћелије на пресеку наведеног реда и колоне.
ИНДЕКС(референца, број_реда , [број_колоне], [број_области] )- референца - је један или више опсега.
Ако уносите више од једног опсега, раздвојите опсеге зарезима и ставите аргумент референце у заграде, на пример (А1:Б5, Д1:Ф5).
Ако сваки опсег у референци садржи само један ред или колону, одговарајући аргумент ров_нум или цолумн_нум је опционалан.
- ров_нум - број реда у опсегу из којег се враћа референца ћелије, сличан је низу форм.
- цолумн_нум - број колоне из које се враћа референца ћелије, такође функционише слично као и образац низа.
- ареа_нум - ан опциони параметар који одређује који опсег од референтног аргумента треба користити. Ако се изостави, формула ИНДЕКС ће вратити резултат за први опсег наведен у референци.
На пример, формула =INDEX((A2:D3, A5:D7), 3, 4, 2)
враћа вредност ћелије Д7, која се налази напресек 3. реда и 4. колоне у другој области (А5:Д7).
ИНДЕКС референтни образац - ствари које треба запамтити
- Ако аргумент ров_нум или цолумн_нум је постављен на нулу (0), формула ИНДЕКС враћа референцу за целу колону или ред, респективно.
- Ако су и ров_нум и цолумн_нум изостављени, функција ИНДЕКС враћа област наведену у аргумент ареа_нум.
- Сви аргументи _нум (број_реда, број_колоне и број_подручја) морају се односити на ћелију унутар референце; у супротном, ИНДЕКС формула ће вратити #РЕФ! грешка.
Обе ИНДЕКС формуле о којима смо до сада говорили су веома једноставне и само илуструју концепт. Ваше праве формуле ће вероватно бити далеко сложеније од тога, па хајде да истражимо неколико најефикаснијих употреба ИНДЕКС-а у Екцел-у.
Како користити функцију ИНДЕКС у Екцел-у – примери формуле
Можда постоји нема много практичних употреба Екцел ИНДЕКС-а сам по себи, али у комбинацији са другим функцијама као што су МАТЦХ или ЦОУНТА, може да направи веома моћне формуле.
Изворни подаци
Све наше ИНДЕКС формуле (осим последњег), користићемо доле наведене податке. Ради погодности, организован је у табели под називом СоурцеДата .
Употреба табела или именованих опсега може да направи формуле нешто дуже, али их чини знатно флексибилнијим и читљивијим. За подешавање било ког ИНДЕКСАформуле за ваше радне листове, потребно је само да измените једно име, и то у потпуности надокнађује већу дужину формуле.
Наравно, ништа вас не спречава да користите уобичајене опсеге ако то желите. У овом случају, једноставно замените име табеле СоурцеДата одговарајућом референцом опсега.
1. Добијање Н-те ставке са листе
Ово је основна употреба функције ИНДЕКС и најједноставнија формула за прављење. Да бисте преузели одређену ставку са листе, само напишете =INDEX(range, n)
где је опсег опсег ћелија или именовани опсег, а н је позиција ставке коју желите да добијете.
Када радите са Екцел табелама, можете да изаберете колону помоћу миша и Екцел ће повући име колоне заједно са именом табеле у формули:
Да бисте добили вредност ћелије на пресеку датог реда и колоне, користите исти приступ са једином разликом што наведете оба – број реда и број колоне. У ствари, већ сте видели такву формулу на делу када смо расправљали о форми ИНДЕКС низа.
И ево још једног примера. У нашем узорку табеле, да бисте пронашли 2. највећу планету у Сунчевом систему, сортирате табелу по колони Пречник и користите следећу формулу ИНДЕКСА:
=INDEX(SourceData, 2, 3)
-
Array
је име табеле или референца опсега, СоурцеДата у овом примеру. -
Row_num
је 2 јер тражите другу ставкуна листи, која се налази у 2. -
Column_num
је 3 јер је Пречник 3. колона у табели.
Ако желите да вратите планету име уместо пречника, промените цолумн_нум у 1. И наравно, можете користити референцу ћелије у аргументима ров_нум и/или цолумн_нум да бисте своју формулу учинили разноврснијом, као што је приказано на снимку екрана испод:
2. Добијање свих вредности у реду или колони
Осим преузимања једне ћелије, функција ИНДЕКС може да врати низ вредности из целог реда или колоне . Да бисте добили све вредности из одређене колоне, морате да изоставите аргумент ров_нум или да га поставите на 0. Исто тако, да бисте добили цео ред, проследите празну вредност или 0 у цолумн_нум.
Такве формуле ИНДЕКС тешко могу се користе самостално, јер Екцел не може да стане низ вредности које враћа формула у једну ћелију, а ви бисте добили #ВАЛУЕ! грешка уместо тога. Међутим, ако користите ИНДЕКС у комбинацији са другим функцијама, као што су СУМ или АВЕРАГЕ, добићете сјајне резултате.
На пример, можете користити следећу формулу да израчунате просечну температуру планете у Сунчевом систему:
=AVERAGE(INDEX(SourceData, , 4))
У горњој формули, аргумент цолумн_нум је 4 јер је Температура у 4. колони у нашој табели. Параметар ров_нум је изостављен.
На сличан начин можете пронаћи минимум и максимумтемпературе:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
И израчунајте укупну масу планете (Маса је 2. колона у табели):
=SUM(INDEX(SourceData, , 2))
С практичног становишта, функција ИНДЕКС у горњој формули је сувишна. Можете једноставно да напишете =AVERAGE(range)
или =SUM(range)
и добијете исте резултате.
Када радите са стварним подацима, ова функција може бити од помоћи као део сложенијих формула које користите за анализу података.
3. Коришћење ИНДЕКС-а са другим функцијама (СУМ, АВЕРАГЕ, МАКС, МИН)
Из претходних примера, можда ћете имати утисак да формула ИНДЕКС враћа вредности, али реалност је да она враћа референцу у ћелију која садржи вредност. И овај пример показује праву природу Екцел функције ИНДЕКС.
Пошто је резултат формуле ИНДЕКС референца, можемо је користити у оквиру других функција да бисмо направили динамички опсег . Звучи збуњујуће? Следећа формула ће све учинити јасним.
Претпоставимо да имате формулу =AVERAGE(A1:A10)
која враћа просек вредности у ћелијама А1:А10. Уместо да упишете опсег директно у формулу, можете да замените или А1 или А10, или обоје, са ИНДЕКС функцијама, на пример:
=AVERAGE(A1 : INDEX(A1:A20,10))
Обе горе наведене формуле ће дати исто резултат јер функција ИНДЕКС такође враћа референцу на ћелију А10 (број_реда је постављен на 10, број_колца је изостављен). Разлика је у томе што је опсег АВЕРАГЕ / ИНДЕКС формула динамичан,и када промените аргумент ров_нум у ИНДЕКС-у, опсег који обрађује функција АВЕРАГЕ ће се променити и формула ће вратити другачији резултат.
Очигледно, рута формуле ИНДЕКС делује превише компликовано, али има практичне примене , као што је показано у следећим примерима.
Пример 1. Израчунајте просек за Н најбољих ставки на листи
Рецимо да желите да знате просечни пречник Н највећих планета у нашем систему . Дакле, сортирате табелу по колони Пречник од највеће до најмање и користите следећу формулу за просек/индекс:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Пример 2. Збројите ставке између наведене две ставке
У случају да желите да дефинишете ставке горње и доње границе у вашој формули, само треба да употребите две функције ИНДЕКС да бисте вратили прву и последња ставка коју желите.
На пример, следећа формула враћа збир вредности у колони Пречник између две ставке наведене у ћелијама Б1 и Б2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. ИНДЕКС формула за креирање динамичких опсега и падајућих листа
Као што се често дешава, када почнете да организујете податке на радном листу, можда нећете знати колико ћете уноса на крају имати. Није случај са табелом наших планета, која изгледа да је потпуна, али ко зна...
У сваком случају, ако имате променљив број ставки у датој колони, рецимо од А1 до А н ,можда ћете желети да креирате динамички именовани опсег који укључује све ћелије са подацима. Притом желите да се опсег аутоматски прилагођава док додајете нове ставке или бришете неке од постојећих. На пример, ако тренутно имате 10 ставки, ваш именовани опсег је А1:А10. Ако додате нови унос, именовани опсег се аутоматски проширује на А1:А11, а ако се предомислите и избришете те новододате податке, опсег се аутоматски враћа на А1:А10.
Главна предност овога приступ је да не морате стално да ажурирате све формуле у радној свесци да бисте били сигурни да се односе на исправне опсеге.
Један од начина да дефинишете динамички опсег је коришћење функције Екцел ОФФСЕТ:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Друго могуће решење је да користите Екцел ИНДЕКС заједно са ЦОУНТА:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
У обе формуле, А1 је ћелија која садржи прву ставку листе и произведени динамички опсег по обе формуле биће идентичне.
Разлика је у приступима. Док се функција ОФФСЕТ помера од почетне тачке за одређени број редова и/или колона, ИНДЕКС проналази ћелију на пресеку одређеног реда и колоне. Функција ЦОУНТА, која се користи у обе формуле, добија број непразних ћелија у колони од интереса.
У овом примеру, постоји 9 ћелија које нису празне у колони А, тако да ЦОУНТА враћа 9. Сходно томе, ИНДЕКС враћа $А$9, што је последња коришћена ћелија у колони А (обично ИНДЕКС