Екцел ИНДИРЕЦТ функција – основне употребе и примери формула

  • Деле Ово
Michael Brown

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

Овај водич за ИНДИРЕЦТ у Екцел-у објашњава синтаксу функције, основну употребу и пружа низ примера формула који показују како да користите ИНДИРЕЦТ у Екцел-у.

Велико функција постоји у Мицрософт-у Екцел, неки су лаки за разумевање, други захтевају дугу криву учења, а први се користи чешће од другог. Па ипак, Екцел ИНДИРЕЦТ је јединствен. Ова Екцел функција не врши никакве прорачуне, нити процењује услове или логичке тестове.

Па, шта је онда ИНДИРЕКТНА функција у Екцел-у и за шта је користим? Ово је веома добро питање и надамо се да ћете добити свеобухватан одговор за неколико минута када завршите са читањем овог упутства.

    Екцел ИНДИРЕЦТ функција - синтакса и основна употреба

    Као што му име говори, Екцел ИНДИРЕЦТ се користи за индиректно упућивање на ћелије, опсеге, друге листове или радне свеске. Другим речима, функција ИНДИРЕЦТ вам омогућава да креирате динамичку ћелију или референцу опсега уместо да их чврсто кодирате. Као резултат, можете да промените референцу унутар формуле без промене саме формуле. Штавише, ове индиректне референце се неће променити када се неки нови редови или колоне уметну у радни лист или када избришете постојеће.

    Све ово може бити лакше разумети из примера. Међутим, да бисте могли да напишете формулу, чак и најједноставнију, потребно је да знатеаутоматски. Решење је коришћење функције ИНДИРЕЦТ, на пример:

    =SUM(INDIRECT("A2:A5"))

    Пошто Екцел „А1:А5“ перципира као пуки текстуални низ, а не као референцу опсега, неће направити никакву мења када уметнете или избришете ред(ове).

    Коришћење ИНДИРЕЦТ-а са другим Екцел функцијама

    Осим СУМ, ИНДИРЕЦТ се често користи са другим Екцел функцијама као што су РЕД, КОЛОНА, АДРЕСА, ВЛООКУП, СУМИФ, да споменемо само неке.

    Пример 1. ИНДИРЕКТНЕ и РОВ функције

    Прилично често се функција РОВ користи у Екцел-у за враћање низа вредности. На пример, можете користити следећу формулу низа (запамтите да захтева притискање Цтрл + Схифт + Ентер ) да бисте вратили просек 3 најмања броја у опсегу А1:А10:

    =AVERAGE(SMALL(A1:A10,ROW(1:3)))

    Међутим, ако убаците нови ред у радни лист, било где између редова 1 и 3, опсег у функцији РОВ ће се променити у РОВ(1:4) и формула ће вратити просек 4 најмања броја уместо 3 .

    Да бисте спречили да се то догоди, угнездите ИНДИРЕЦТ у функцију РОВ и формула вашег низа ће увек остати тачна, без обзира колико редова је уметнуто или избрисано:

    =AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Ево још неколико примера коришћења ИНДИРЕЦТ и РОВ у комбинацији са функцијом ЛАРГЕ: Како сабрати Н највећих бројева у опсегу.

    Пример 2. ИНДИРЕКТНЕ и АДРЕСНЕ функције

    Можете користити Екцел ИНДИРЕЦТ заједно са функцијом АДДРЕСС за добијањевредност у одређеној ћелији у ходу.

    Као што се можда сећате, функција АДДРЕСС се користи у Екцел-у за добијање адресе ћелије према бројевима реда и колоне. На пример, формула =ADDRESS(1,3) враћа стринг $Ц$1 пошто је Ц1 ћелија на пресеку 1. реда и 3. колоне.

    Да бисте креирали индиректну референцу ћелије, једноставно уградите функцију АДДРЕСС у ИНДИРЕЦТ формула попут ове:

    =INDIRECT(ADDRESS(1,3))

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

    • формула ИНДИРЕКТНЕ АДРЕСЕ – како да мењате редове и колоне.
    • ВЛООКУП и ИНДИРЕЦТ – како динамички извлачити податке из различитих листова .
    • ИНДИРЕЦТ са ИНДЕКС / МАТЦХ - како да доведете до савршенства ВЛООКУП формулу осетљиву на велика и мала слова.
    • Екцел ИНДИРЕЦТ и ЦОУНТИФ - како да користите функцију ЦОУНТИФ на несуседном опсегу или избор ћелија.

    Коришћење ИНДИРЕЦТ са провером података у Екцел-у

    Можете користити Екцел ИНДИРЕЦТ функцију са провером података да бисте креирали каскадне падајуће листе које приказују различите изборе у зависности од вредности корисник изабран у првом падајућем менију.

    Једноставну зависну падајућу листу је заиста лако направити. Све што је потребно је неколико именованих опсега за чување ставки падајућег менија и једноставна формула =INDIRECT(A2) где је А2 ћелија која приказује вашу прву падајућу листу.

    Да буде сложенијеМенији или падајући менији на 3 нивоа са уносима од више речи, биће вам потребна мало сложенија ИНДИРЕЦТ формула са угнежђеном функцијом СУБСТИТУТЕ.

    За детаљна упутства корак по корак о томе како да користите ИНДИРЕЦТ са Валидација Екцел података, погледајте овај водич: Како направити зависну падајућу листу у Екцел-у.

    Екцел ИНДИРЕЦТ функција – могуће грешке и проблеми

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

    Поред горе речено, као и свака друга Екцел функција, ИНДИРЕЦТ може да доведе до грешке ако погрешно користите аргументе функције. Ево листе најчешћих грешака:

    Екцел ИНДИРЕЦТ #РЕФ! еррор

    Најчешће, ИНДИРЕЦТ функција враћа #РЕФ! грешка у три случаја:

    1. реф_тект није важећа референца ћелије . Ако параметар реф_тект у вашој индиректној формули није важећа референца ћелије, формула ће резултирати #РЕФ! вредност грешке. Да бисте избегли могуће проблеме, проверите функцију ИНДИРЕЦТаргументи.
    2. Ограничење опсега је премашено . Ако се аргумент реф_тект ваше индиректне формуле односи на опсег ћелија изнад ограничења редова од 1.048.576 или ограничења колоне од 16.384, такође ћете добити грешку #РЕФ у Екцел 2007, 2010 и Екцел 2013. Раније верзије Екцела занемарују прекорачење ограничите и вратите неку вредност, иако често не ону коју бисте очекивали.
    3. Препоручени лист или радна свеска је затворена. Ако се ваша индиректна формула односи на другу Екцел радну свеску или радни лист, то друга радна свеска/табела мора бити отворена, иначе ИНДИРЕЦТ враћа #РЕФ! грешка.

    Екцел ИНДИРЕЦТ #НАМЕ? еррор

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

    Коришћење ИНДИРЕЦТ функције у не-енглеским локацијама

    Можда ће вас занимати да је енглески назив функције ИНДИРЕЦТ преведен на 14 језика, укључујући:

    • дански - ИНДИРЕКТЕ
    • фински - ЕПАСУОРА
    • немачки - ИНДИРЕКТ
    • мађарски - ИНДИРЕКТ
    • италијански - ИНДИРЕТТО
    • норвешки - ИНДИРЕКТЕ
    • пољски - АДР.ПОСР
    • шпански - ИНДИРЕЦТО
    • шведски - ИНДИРЕКТ
    • турски - ДОЛАИЛИ

    Ако сте заинтересовани да добијете комплетну листу, погледајте ову страницу.

    Уобичајени проблем са локализацијама које нису на енглеском јеније назив функције ИНДИРЕЦТ, већ другачије Регионалне поставке за Раздвајач листе . У стандардној конфигурацији Виндовс-а за Северну Америку и неке друге земље, подразумевани Лист Сепаратор је зарез. Док је у европским земљама зарез резервисан као Децимални симбол , а Развојивач листе је постављен на тачку и зарез.

    Као резултат тога, када копирате формулу између два различитим локацијама у Екцел-у, можете добити поруку о грешци „ Пронашли смо проблем са овом формулом… “ јер се Раздвајач листе који се користи у формули разликује од онога што је подешено на вашој машини. Ако наиђете на ову грешку када копирате неку ИНДИРЕКТНУ формулу из овог упутства у ваш Екцел, једноставно замените све зарезе (,) са тачком и зарезом (;) да бисте је исправили.

    Да бисте проверили који су сепаратор листе и децимални симбол подесите на свом рачунару, отворите Контролна табла и идите на Регион и језик &гт; Додатна подешавања .

    Надајмо се да је овај водич бацио светло на коришћење ИНДИРЕЦТ-а у Екцел-у. Сада када знате његове предности и ограничења, време је да покушате и видите како функција ИНДИРЕЦТ може да поједностави ваше Екцел задатке. Хвала вам на читању!

    аргументи функције, зар не? Дакле, хајде да прво погледамо Екцел ИНДИРЕЦТ синтаксу.

    Синтакса ИНДИРЕЦТ функције

    Функција ИНДИРЕЦТ у Екцел-у враћа референцу ћелије из текстуалног низа. Има два аргумента, први је обавезан, а други опциони:

    ИНДИРЕЦТ(реф_тект, [а1])

    реф_тект - је референца ћелије, или референца на ћелију у облик текстуалног низа или именовани опсег.

    а1 - је логичка вредност која одређује који тип референце је садржан у аргументу реф_тект:

    • Ако је ТРУЕ или је изостављен, реф_тект се тумачи као референца ћелије у стилу А1.
    • Ако је ФАЛСЕ, реф_тект се третира као референца Р1Ц1.

    Док референтни тип Р1Ц1 може бити корисно у одређеним ситуацијама, вероватно ћете желети да користите познате А1 референце већину времена. У сваком случају, скоро све ИНДИРЕЦТ формуле у овом водичу ће користити А1 референце, тако да ћемо изоставити други аргумент.

    Основна употреба ИНДИРЕЦТ функције

    Да бисмо ушли у увид функције, хајде да напишемо једноставна формула која показује како користите ИНДИРЕЦТ у Екцел-у.

    Претпоставимо да имате број 3 у ћелији А1 и текст А1 у ћелији Ц1. Сада ставите формулу =INDIRECT(C1) у било коју другу ћелију и видите шта се дешава:

    • ИНДИРЕКТНА функција се односи на вредност у ћелији Ц1, која је А1.
    • Функција се усмерава на ћелија А1 где бира вредност коју треба да врати,што је број 3.

    Дакле, оно што функција ИНДИРЕЦТ заправо ради у овом примеру је претварање текстуалног низа у референцу ћелије .

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

    Како користити ИНДИРЕЦТ у Екцел-у - примери формуле

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

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

    Креирање индиректних референци од вредности ћелија

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

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

    А1 стил је уобичајени референтни тип у Екцел-у који се односи на колону иза које следи ред број. На пример, Б2 се односи на ћелију на пресеку колоне Б и реда 2.

    Р1Ц1 стил је супротан референтни тип - редови праћени колонама, што захтева неко време да се навикне до: ) На пример, Р4Ц1 се односи на ћелију А4 која се налази у реду 4, колони 1 на листу. Ако ниједан број не долази иза слова, онда се позивате на исти ред или колону.

    А сада, да видимо како функција ИНДИРЕЦТ рукује референцама А1 и Р1Ц1:

    Као што видите у на слици изнад, три различите индиректне формуле враћају исти резултат. Да ли сте већ схватили зашто? Кладим се да имате : )

    • Формула у ћелији Д1: =INDIRECT(C1)

    Ова је најлакша. Формула се односи на ћелију Ц1, преузима њену вредност - текстуални низ А2 , претвара је у референцу ћелије, прелази на ћелију А2 и враћа њену вредност, која је 222.

    • Формула у ћелији Д3: =INDIRECT(C3,FALSE)

    ФАЛСЕ у 2. аргументу означава да се наведена вредност (Ц3) треба третирати као референца ћелије Р1Ц1, тј. број реда иза којег следи број колоне. дакле,наша ИНДИРЕКТНА формула тумачи вредност у ћелији Ц3 (Р2Ц1) као референцу на ћелију на споју реда 2 и колоне 1, а то је ћелија А2.

    Креирање индиректних референци од вредности ћелије и текста

    Слично као што смо направили референце од вредности ћелија, можете комбиновати текстуални стринг и референцу ћелије унутар ваше ИНДИРЕКТНЕ формуле, повезане заједно са оператором конкатенације (&амп;) .

    У следећем примеру, формула: =ИНДИРЕЦТ("Б"&амп;Ц2) враћа вредност из ћелије Б2 на основу следећег логичког ланца:

    Функција ИНДИРЕЦТ спаја елементе у аргументу реф_тект - текст Б и вредност у ћелији Ц2 -&гт; вредност у ћелији Ц2 је број 2, што чини референцу на ћелију Б2 -&гт; формула иде у ћелију Б2 и враћа њену вредност, која је број 10.

    Коришћењем функције ИНДИРЕЦТ са именованим опсезима

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

    Претпоставимо да имате следеће именоване опсеге у свом листу:

    • Јабуке - Б2:Б6
    • Банане - Ц2:Ц6
    • Лимуни - Д2:Д6

    Да бисте креирали Екцел динамичку референцу на било који од горе наведених опсега, само унесите његово име у неку ћелију, рецимо Г1, и упутите се на ту ћелију из индиректне формуле =INDIRECT(G1) .

    И сада, можете направити корак даље и уградити ову ИНДИРЕКТНУ формулуу друге Екцел функције да бисте израчунали збир и просек вредности у датом именованом опсегу или пронашли максималну/минималну вредност унутар опсега:

    • =SUM(INDIRECT(G1))
    • =AVERAGE(INDIRECT(G1))
    • =MAX(INDIRECT(G1))
    • =MIN(INDIRECT(G1))

    Сада када имате општу идеју о томе како да користите функцију ИНДИРЕЦТ у Екцел-у, можемо експериментисати са моћнијим формулама.

    ИНДИРЕЦТ формула за динамички упућивање на други радни лист

    Корисност функције Екцел ИНДИРЕЦТ није ограничена на прављење „динамичких“ референци ћелија. Такође можете да га користите за упућивање на ћелије у другим радним листовима „у ходу“, а ево како.

    Претпоставимо да имате неке важне податке у листу 1 и желите да извучете те податке у листу 2. Следећи снимак екрана показује како Екцел индиректна формула може да се носи са овим задатком:

    Хајде да раздвојимо формулу коју видите на снимку екрана и разумемо.

    Као што знате, уобичајени начин референцирања на други лист у Екцел-у пише име листа праћено знаком узвика и референцом ћелије/опсега, као што је Име листа!Распон . Пошто назив листа често садржи размак(е), боље је да га (име, а не размак: ) ставите у једноструке наводнике да бисте спречили грешку, на пример 'Мој лист!'$А$1 .

    А сада, све што треба да урадите је да унесете име листа у једну ћелију, адресу ћелије у другу, спојите их у текстуални низ и унесете тај низ уИНДИРЕКТНА функција. Запамтите да у текстуалном стрингу морате сваки елемент осим адресе ћелије или броја ставити у двоструке наводнике и повезати све елементе заједно помоћу оператора конкатенације (&амп;).

    С обзиром на горе наведено, добијамо следећи образац:

    ИНДИРЕЦТ("'" &амп; Име листа &амп; "'!" &амп; Ћелија за повлачење података из )

    Враћајући се на наш пример, ставите име листа у ћелију А1 и откуцате адресе ћелија у колону Б, као што је приказано на слици изнад. Као резултат, добијате следећу формулу:

    INDIRECT("'" & $A$1 & "'!" & B1)

    Такође, обратите пажњу да ако копирате формулу у више ћелија, морате да закључате референцу на име листа користећи апсолутне референце ћелије као што је $А$1.

    Напомене

    • Ако је било која од ћелија које садрже име другог листа и адресу ћелије (А1 и Б1 у горњој формули) празна , ваша индиректна формула ће вратити грешку. Да бисте ово спречили, можете да умотате ИНДИРЕЦТ функцију у ИФ функцију:

      IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))

    • Да би ИНДИРЕКТНА формула која се односи на други лист исправно радила, наведени лист треба да буде отворен, иначе формула ће вратити грешку #РЕФ. Да бисте избегли грешку, можете да користите функцију ИФЕРРОР, која ће приказати празан стринг, без обзира на грешку:

      IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")

    Креирање Екцел динамичке референце на другу радну свеску

    Индиректна формула која се односина другу Екцел радну свеску заснива се на истом приступу као референца на другу табелу. Само треба да наведете да је назив радне свеске додатак имену листа и адреси ћелије.

    Да бисмо олакшали ствари, почнимо са упућивањем на другу књигу на уобичајен начин (апострофи се додају у случају да ваша књига и/или називи листова садрже размаке):

    '[име_књиге.клск]име_листова'!Опсег

    Под претпоставком да је име књиге у ћелији А2, име листа је у Б2, а адреса ћелије је у Ц2, добијамо следећу формулу:

    =INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)

    Пошто не желите да се ћелије које садрже називе књиге и листова мењају приликом копирања формуле у друге ћелије, закључајте их коришћењем апсолутних референци ћелија, $А$2 и $Б$2, респективно.

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

    =ИНДИРЕЦТ("'[" &амп; Назив књиге &амп; " ]" &амп; Име листа & "'!" &амп; Адреса ћелије )

    Напомена. Радна свеска на коју се ваша формула односи треба увек да буде отворена, иначе ће функција ИНДИРЕЦТ избацити грешку #РЕФ. Као и обично, функција ИФЕРРОР може да вам помогне да је избегнете:

    =IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")

    Коришћење Екцел ИНДИРЕЦТ функције за закључавање референце ћелије

    Уобичајено, Мицрософт Екцел мења референце ћелије када уметнете нове или избришите постојеће редове или колоне на листу. Да бисте спречили да се то догоди, можетекористите функцију ИНДИРЕЦТ за рад са референцама ћелија које би у сваком случају требале остати нетакнуте.

    Да бисте илустровали разлику, урадите следеће:

    1. Унесите било коју вредност у било коју ћелију, рецимо , број 20 у ћелији А1.
    2. Позовите на А1 из друге две ћелије на различите начине: =A1 и =INDIRECT("A1")
    3. Убаците нови ред изнад реда 1.

    Види шта се дешава? Ћелија са логичким оператором једнако и даље враћа 20, јер је њена формула аутоматски промењена у =А2. Ћелија са ИНДИРЕЦТ формулом сада враћа 0, јер формула није промењена када је уметнут нови ред и још увек се односи на ћелију А1, која је тренутно празна:

    Након ове демонстрације, можда ћете бити испод утисак да функција ИНДИРЕКТ више смета него помаже. У реду, хајде да пробамо на други начин.

    Претпоставимо да желите да збројите вредности у ћелијама А2:А5 и то можете лако да урадите помоћу функције СУМ:

    =SUM(A2:A5)

    Међутим, желите да формула остане непромењена, без обзира на то колико је редова избрисано или уметнуто. Најочигледније решење – употреба апсолутних референци – неће помоћи. Да бисте били сигурни, унесите формулу =SUM($A$2:$A$5) у неку ћелију, уметните нови ред, рецимо у ред 3, и... пронађите формулу претворену у =SUM($A$2:$A$6) .

    Наравно, таква љубазност Мицрософт Екцел-а ће добро функционисати у већини случајевима. Ипак, могу постојати сценарији када не желите да се формула мења

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.