Содржина
Овој туторијал за Excel INDIRECT ја објаснува синтаксата на функцијата, основните употреби и дава голем број примери на формула кои покажуваат како да се користи INDIRECT во Excel.
Постојат многу функции во Microsoft Excel, некои се лесно разбирливи, други бараат долга крива на учење, а првото се користи почесто од второто. А сепак, Excel INDIRECT е еден од таквите. Оваа функција на Excel не врши никакви пресметки, ниту проценува какви било услови или логички тестови.
Па тогаш, што е функцијата INDIRECT во Excel и за што ја користам? Ова е многу добро прашање и се надеваме дека ќе добиете сеопфатен одговор за неколку минути кога ќе завршите со читање на ова упатство.
Excel INDIRECT функција - синтакса и основни употреби
Како што сугерира неговото име, Excel INDIRECT се користи за индиректно упатување на ќелии, опсези, други листови или работни книги. Со други зборови, функцијата INDIRECT ви овозможува да креирате динамична ќелија или референца за опсег наместо да ги кодирате. Како резултат на тоа, можете да промените референца во формула без да ја менувате самата формула. Покрај тоа, овие индиректни референци нема да се променат кога ќе се вметнат некои нови редови или колони во работниот лист или кога ќе ги избришете постоечките.
Сето ова може да биде полесно да се разбере од пример. Меѓутоа, за да можете да напишете формула, дури и наједноставната, треба да ја знаетеавтоматски. Решението е да се користи функцијата INDIRECT, вака:
=SUM(INDIRECT("A2:A5"))
Бидејќи Excel го перцепира „A1:A5“ како обична текстуална низа наместо референца за опсег, нема да направи никаква се менува кога вметнувате или бришете ред(и).
Користење INDIRECT со други функции на Excel
Покрај SUM, INDIRECT често се користи со други функции на Excel како ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, да наведеме неколку.
Пример 1. Функции INDIRECT и ROW
Доста често, функцијата ROW се користи во Excel за да се врати низа вредности. На пример, можете да ја користите следнава формула за низа (запомнете дека бара притискање на Ctrl + Shift + Enter ) за да го вратите просекот од 3 најмали броеви во опсегот A1:A10:
=AVERAGE(SMALL(A1:A10,ROW(1:3)))
Меѓутоа, ако вметнете нов ред во вашиот работен лист, некаде помеѓу редовите 1 и 3, опсегот во функцијата ROW ќе се промени во ROW (1:4) и формулата ќе го врати просекот на 4 најмали броеви наместо 3. .
За да спречите тоа да се случи, вгнездувајте го INDIRECT во функцијата ROW и формулата на вашата низа секогаш ќе остане точна, без разлика колку редови се вметнати или избришани:
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))
Еве уште неколку примери за користење INDIRECT и ROW во врска со функцијата LARGE: Како да се сумираат N најголеми броеви во опсег.
Пример 2. INDIRECT и ADDRESS функции
Можете да ги користите Excel INDIRECT заедно со функцијата ADDRESS за да се добиевредност во одредена ќелија во лет.
Како што можеби се сеќавате, функцијата АДРЕС се користи во Excel за да се добие адреса на ќелија според броевите на редовите и колоните. На пример, формулата =ADDRESS(1,3)
ја враќа низата $C$1 бидејќи C1 е ќелијата на пресекот на првиот ред и третата колона.
За да креирате индиректна референца на ќелијата, едноставно ја вградувате функцијата ADDRESS во INDIRECT формула како оваа:
=INDIRECT(ADDRESS(1,3))
Се разбира, оваа тривијална формула само ја демонстрира техниката. И еве неколку примери кои може да се покажат навистина корисни:
- Формула за ИНДИРЕКТНА АДРЕСА - како да менувате редови и колони.
- VLOOKUP и INDIRECT - како динамички да се извлечат податоци од различни листови .
- INDIRECT со INDEX / MATCH - како да ја доведете формулата VLOOKUP чувствителна на големи букви до совршенство.
- Excel INDIRECT и COUNTIF - како да ја користите функцијата COUNTIF на несоседен опсег или избор на ќелии.
Користење INDIRECT со валидација на податоци во Excel
Можете да ја користите функцијата Excel INDIRECT со валидација на податоци за да креирате каскадни паѓачки списоци кои прикажуваат различни избори во зависност од која вредност корисникот избран во првото паѓачко мени.
Навистина лесно е да се направи едноставна зависна паѓачка листа. Потребни се само неколку именувани опсези за складирање на ставките од паѓачкото мени и едноставна формула =INDIRECT(A2)
каде што А2 е ќелијата што ја прикажува вашата прва паѓачка листа.
Да се направи покомплекснаМенија од 3 нивоа или паѓачки мени со записи со повеќе зборови, ќе ви треба малку посложена формула INDIRECT со вгнездена функција SUBSTITUTE.
За детални упатства чекор-по-чекор за тоа како да користите INDIRECT со Валидација на податоци во Excel, ве молиме погледнете го ова упатство: Како да направите зависна паѓачка листа во Excel.
Функцијата ИНДИРЕКТ на Excel - можни грешки и проблеми
Како што е прикажано во горните примери, ИНДИРЕКТ функцијата е доста корисна кога се работи со референци за ќелии и опсег. Сепак, не сите корисници на Excel со нетрпение го прифаќаат најмногу затоа што широката употреба на INDIRECT во формулите на Excel резултира со недостаток на транспарентност. Функцијата INDIRECT е тешко да се прегледа бидејќи ќелијата на која се однесува не е крајната локација на вредноста што се користи во формулата, што е навистина збунувачки, особено кога се работи со големи сложени формули.
Покрај горе кажано, како и секоја друга функција на Excel, INDIRECT може да предизвика грешка ако ги злоупотребите аргументите на функцијата. Еве листа на најтипични грешки:
Excel INDIRECT #REF! грешка
Најчесто, функцијата INDIRECT враќа #REF! грешка во три случаи:
- ref_text не е валидна референца на ќелијата . Ако параметарот ref_text во вашата Индиректна формула не е валидна референца на ќелијата, формулата ќе резултира со #REF! вредност на грешка. За да избегнете можни проблеми, проверете ја функцијата INDIRECTаргументи.
- Ограничувањето на опсегот е надминато . Ако аргументот ref_text на вашата индиректна формула се однесува на опсег на ќелии над границата на редот од 1.048.576 или границата на колоната од 16.384, ќе ја добиете и грешката #REF во Excel 2007, 2010 и Excel 2013. Претходните верзии на Excel го игнорираат надминатиот ограничете и враќајте одредена вредност, иако честопати не онаа што би ја очекувале.
- Упатениот лист или работна книга се затворени. Ако вашата индиректна формула се однесува на друга работна книга или работен лист на Excel, тоа другата работна книга/табелата мора да биде отворена, во спротивно INDIRECT го враќа #REF! грешка.
Excel INDIRECT #NAME? грешка
Ова е најочигледниот случај, што значи дека има некоја грешка во името на функцијата, што нè води до следната точка : )
Користење на функцијата INDIRECT во неанглиски локалитети
Можеби сте љубопитни да знаете дека англиското име на функцијата INDIRECT е преведено на 14 јазици, вклучувајќи:
|
|
Ако сте заинтересирани да ја добиете целосната листа, ве молиме погледнете ја оваа страница.
Чест проблем со неанглиските локализации ене името на функцијата INDIRECT, туку различни Регионални поставки за Сепаратор на листа . Во стандардната конфигурација на Windows за Северна Америка и некои други земји, стандардниот Сепаратор на листа е запирка. Додека во европските земји, запирката е резервирана како децимален симбол , а Сепараторот на списокот е поставен на точка-запирка.
Како резултат на тоа, кога се копира формула помеѓу две различни локалитети на Excel, може да ја добиете пораката за грешка „ Најдовме проблем со оваа формула… “, бидејќи Сепараторот на списокот што се користи во формулата е различен од она што е поставено на вашата машина. Ако наидете на оваа грешка кога копирате некоја ИНДИРЕКТНА формула од ова упатство во вашиот Excel, едноставно заменете ги сите запирки (,) со запирки (;) за да ја поправите.
За да проверите кои сепаратор на листа и децимален симбол се поставете го на вашиот уред, отворете го Контролниот панел и одете на Регион и јазик > Дополнителни поставки .
Се надеваме дека ова упатство фрли малку светлина за користењето на INDIRECT во Excel. Сега кога ги знаете неговите силни страни и ограничувања, време е да се обидете и да видите како функцијата INDIRECT може да ги поедностави вашите задачи во Excel. Ви благодариме што прочитавте!
аргументите на функцијата, нели? Значи, најпрво да ја разгледаме синтаксата ИНДИРЕКТ на Excel.Синтакса на ИНДИРЕКТНА функција
Функцијата ИНДИРЕКТ во Excel враќа референца на ќелија од текстуална низа. Има два аргумента, првиот е задолжителен, а вториот е опционален:
INDIRECT(ref_text, [a1])ref_text - е референца на ќелија, или референца на ќелија во форма на текстуална низа или именуван опсег.
a1 - е логичка вредност која одредува каков тип на референца се содржи во аргументот ref_text:
- Доколку е ТОЧНО или изоставено, ref_text се толкува како референца на ќелија во стилот A1.
- Ако FALSE, ref_text се третира како референца R1C1.
Додека референтниот тип R1C1 може да биде корисни во одредени ситуации, веројатно ќе сакате да ги користите познатите референци А1 поголемиот дел од времето. Како и да е, скоро сите ИНДИРЕКТ формули во ова упатство ќе користат референци А1, така што ќе го испуштиме вториот аргумент.
Основна употреба на функцијата ИНДИРЕКТ
За да навлеземе во увидот на функцијата, ајде да напишеме едноставна формула која покажува како користите INDIRECT во Excel.
Да претпоставиме дека имате број 3 во ќелијата A1 и текст A1 во ќелијата C1. Сега, ставете ја формулата =INDIRECT(C1)
во која било друга ќелија и видете што ќе се случи:
- Функцијата INDIRECT се однесува на вредноста во ќелијата C1, која е A1.
- Функцијата е насочена кон ќелијата A1 каде што ја избира вредноста што треба да ја врати,што е број 3.
Значи, она што всушност го прави функцијата INDIRECT во овој пример е конвертирање текстуална низа во референца на ќелија .
Ако мислите дека ова сè уште има многу малку практична смисла, ве молиме издржете се со мене и ќе ви покажам уште неколку формули кои ја откриваат вистинската моќ на функцијата Excel INDIRECT.
Како да користите INDIRECT во Excel - примери на формули
Како што беше прикажано во горниот пример, можете да ја користите функцијата Excel INDIRECT за да ја ставите адресата на една ќелија во друга како вообичаена текстуална низа и да ја добиете вредноста на првата ќелија со упатување на 2-та. Сепак, тој тривијален пример не е ништо повеќе од навестување за можностите INDIRECT.
Кога се работи со реални податоци, функцијата INDIRECT може да ја претвори секоја текстуална низа во референца вклучувајќи многу сложени низи што ги создавате користејќи ги вредностите на други ќелии и резултати вратени од други формули на Excel. Но, да не ја ставаме количката пред коњот и да трчаме низ неколку формули на Excel Индиректни, една по една.
Креирање индиректни референци од вредностите на ќелиите
Како што се сеќавате, функцијата Excel INDIRECT дозволува за A1 и R1C1 референтни стилови. Обично, не можете да ги користите двата стила во еден лист истовремено, можете само да се префрлате помеѓу двата референтни типа преку Датотека > Опции > Формули > R1C1 поле за штиклирање . Ова е причината зошто корисниците на Excel ретко размислуваат да користат R1C1како алтернативен пристап за референцирање.
Во формулата ИНДИРЕКТ, можете да користите било кој тип на референца на истиот лист ако сакате. Пред да продолжиме понатаму, можеби ќе сакате да ја знаете разликата помеѓу стиловите на референца A1 и R1C1.
Стилот A1 е вообичаениот референтен тип во Excel што се однесува на колона проследена со ред број. На пример, B2 се однесува на ќелијата на пресекот на колоната B и редот 2.
Стилот R1C1 е спротивен референтен тип - редови проследени со колони, за што е потребно извесно време да се навикне до :) На пример, R4C1 се однесува на ќелијата A4 која е во редот 4, колона 1 во лист. Ако после буквата не доаѓа број, тогаш се однесувате на истиот ред или колона.
И сега, да видиме како функцијата INDIRECT се справува со референците A1 и R1C1:
Како што гледате во Сликата од екранот погоре, три различни индиректни формули го враќаат истиот резултат. Дали веќе сте сфатиле зошто? Се обложувам дека имате : )
- Формула во ќелијата D1:
=INDIRECT(C1)
Ова е најлесната. Формулата се однесува на ќелијата C1, ја зема нејзината вредност - текстуална низа A2 , ја претвора во референца на ќелијата, се упатува кон ќелијата A2 и ја враќа нејзината вредност, која е 222.
- Формулата во ќелијата D3:
=INDIRECT(C3,FALSE)
FALSE во вториот аргумент покажува дека наведената вредност (C3) треба да се третира како референца на ќелијата R1C1, т.е. број на ред проследен со број на колона. Затоа,нашата ИНДИРЕКТНА формула ја толкува вредноста во ќелијата C3 (R2C1) како референца за ќелијата на спојот на редот 2 и колоната 1, што е ќелијата A2.
Креирање индиректни референци од вредностите на ќелијата и текстот
Слично на тоа како создадовме референци од вредностите на ќелиите, можете да комбинирате текстуална низа и референца за ќелија во вашата ИНДИРЕКТ формула, врзани заедно со операторот за конкатенација (&) .
Во следниот пример, формулата: =INDIRECT("B"&C2) враќа вредност од ќелијата B2 врз основа на следниот логички синџир:
Функцијата INDIRECT ги поврзува елементите во аргументот ref_text - текст B и вредноста во ќелијата C2 -> вредноста во ќелијата C2 е број 2, што се однесува на ќелијата B2 -> формулата оди во ќелијата B2 и ја враќа нејзината вредност, која е број 10.
Користејќи ја функцијата INDIRECT со именувани опсези
Покрај правењето референци од вредностите на ќелијата и текстот, можете да го добиете Excel INDIRECT функција да се однесува на именувани опсези .
Да претпоставиме дека ги имате следните именувани опсези во вашиот лист:
- Apple - B2:B6
- Банани - C2:C6
- Лимони - D2:D6
За да креирате динамичка референца на Excel за кој било од горенаведените опсези, само внесете го неговото име во некоја ќелија, кажете G1, и упатете се на таа ќелија од индиректна формула =INDIRECT(G1)
.
И сега, можете да направите чекор понатаму и да ја вметнете оваа ИНДИРЕКТНА формулаво други функции на Excel за да се пресмета збирот и просекот на вредностите во даден именуван опсег или да се најде максималната / минималната вредност во опсегот:
-
=SUM(INDIRECT(G1))
-
=AVERAGE(INDIRECT(G1))
-
=MAX(INDIRECT(G1))
-
=MIN(INDIRECT(G1))
Сега кога ја добивте општата идеја како да ја користите функцијата INDIRECT во Excel, можеме да експериментираме со помоќни формули.
INDIRECT формула за динамичко упатување на друг работен лист
Корисноста на функцијата Excel INDIRECT не е ограничена на градење „динамични“ референци на ќелиите. Можете исто така да го користите за да се однесувате на ќелиите во другите работни листови „во лет“, а еве како.
Да претпоставиме дека имате некои важни податоци во Лист 1 и сакате да ги повлечете тие податоци во Лист 2. Следната слика од екранот покажува како индиректната формула на Excel може да се справи со оваа задача:
Ајде да ја разделиме формулата што ја гледате на сликата од екранот и да ја разбереме.
Како што знаете, вообичаениот начин за повикување на друг лист во Excel го пишува името на листот проследено со извичник и референца на ќелија / опсег, како Име на лист!Опсег . Бидејќи името на листот често содржи празни места, подобро е да го приложите (името, а не празно :) во единечни наводници за да спречите грешка, на пример 'Мој лист!'$A$1 .
И сега, сè што треба да направите е да го внесете името на листот во една ќелија, адресата на ќелијата во друга, да ги споите во текстуална низа и да ја внесете таа низа воИНДИРЕКТНА функција. Запомнете дека во текстуалната низа, треба да го приложите секој елемент различен од адресата или бројот на ќелијата во двојни наводници и да ги поврзете сите елементи заедно користејќи го операторот за конкатенација (&).
Со оглед на горенаведеното, го добиваме следнава шема:
INDIRECT("'" & Име на листот & "'!" & Ќелија за повлекување податоци од )Враќајќи се на нашиот пример, го ставате името на листот во ќелијата А1 и ги пишувате адресите на ќелиите во колоната Б, како што е прикажано на сликата од екранот погоре. Како резултат на тоа, ја добивате следната формула:
INDIRECT("'" & $A$1 & "'!" & B1)
Исто така, обрнете внимание дека ако ја копирате формулата во повеќе ќелии, треба да ја заклучите референцата за името на листот користејќи апсолутните референци на ќелиите како $A$1.
Забелешки
- Ако некоја од ќелиите што го содржи името на вториот лист и адресата на ќелијата (A1 и B1 во горната формула) е празна , вашата индиректна формула ќе врати грешка. За да го спречите ова, можете да ја завиткате функцијата INDIRECT во функцијата IF:
IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))
- За формулата INDIRECT што се однесува на друг лист да работи правилно, наведениот лист треба да биде отворен, инаку формулата ќе врати #REF грешка. За да ја избегнете грешката, можете да ја користите функцијата IFERROR, која ќе прикаже празна низа, без оглед на грешката:
IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")
Креирање динамичка референца на Excel до друга работна книга
Индиректната формула која се однесувадо различна работна книга на Excel се заснова на истиот пристап како упатување на друга табела. Само треба да го наведете името на работната книга како додаток на името на листот и адресата на ќелијата.
За да ги олесниме работите, да почнеме со упатување на друга книга на вообичаен начин (апострофи се додаваат во случај вашата книга и/или имињата на листовите содржат празни места):
'[Book_name.xlsx]Sheet_name'!Range
Претпоставувајќи дека името на книгата е во ќелијата A2, името на листот е во B2 и адресата на ќелијата е во C2, ја добиваме следнава формула:
=INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)
Бидејќи не сакате ќелиите што ги содржат имињата на книгата и листовите да се менуваат при копирање на формулата во други ќелии, вие заклучете ги со користење на апсолутни референци за ќелии, соодветно $A$2 и $B$2.
И сега, можете лесно да напишете своја динамична референца до друга работна книга на Excel со користење на следнава шема:
=INDIRECT("'[" & Име на книгата & " ]" & Име на листот & "'!" & Адреса на ќелија )Забелешка. Работната книга на која се однесува вашата формула треба секогаш да биде отворена, инаку функцијата INDIRECT ќе фрли грешка #REF. Како и обично, функцијата IFERROR може да ви помогне да ја избегнете:
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
Користење на функцијата Excel INDIRECT за заклучување референца на ќелија
Нормално, Microsoft Excel ги менува референците на ќелијата кога вметнувате нови или бришете постојни редови или колони во лист. За да спречите тоа да се случи, можетекористете ја функцијата INDIRECT за да работите со референци на ќелии кои треба да останат недопрени во секој случај.
За да ја илустрирате разликата, направете го следново:
- Внесете која било вредност во која било ќелија, кажете , број 20 во ќелијата A1.
- Погледнете го A1 од две други ќелии на различни начини:
=A1
и=INDIRECT("A1")
- Вметнете нов ред над редот 1.
Видете што се случува? Ќелијата со еднаква на логички оператор сепак враќа 20, бидејќи нејзината формула е автоматски променета во =A2. Ќелијата со формулата INDIRECT сега враќа 0, бидејќи формулата не е променета кога се вметнува нов ред и сè уште се однесува на ќелијата A1, која моментално е празна:
По оваа демонстрација, можеби ќе бидете под впечаток дека функцијата ИНДИРЕКТ е повеќе непријатност отколку помош. Добро, ајде да се обидеме на друг начин.
Да претпоставиме дека сакате да ги сумирате вредностите во ќелиите A2:A5 и лесно можете да го направите ова користејќи ја функцијата SUM:
=SUM(A2:A5)
Сепак, сакате формулата да остане непроменета, без разлика колку редови се избришани или вметнати. Најочигледното решение - употребата на апсолутни референци - нема да помогне. За да бидете сигурни, внесете ја формулата =SUM($A$2:$A$5)
во некоја ќелија, вметнете нов ред, да речеме во редот 3, и… најдете ја формулата претворена во =SUM($A$2:$A$6)
.
Се разбира, таквата учтивост на Microsoft Excel ќе работи добро во повеќето случаи. Сепак, може да има сценарија кога не сакате формулата да се промени