Содржина
Во ова упатство, ќе најдете голем број примери на формула кои ја покажуваат најефикасната употреба на INDEX во Excel.
Од сите функции на Excel, чија моќ често се потценува и недоволно искористена, INDEX дефинитивно би се рангирал некаде во првите 10. Во меѓувреме, оваа функција е паметна, еластична и разновидна.
Па, што е функцијата INDEX во Excel? Во суштина, формулата INDEX враќа референца на ќелија од дадена низа или опсег. Со други зборови, користите INDEX кога ја знаете (или можете да ја пресметате) позицијата на елементот во опсег и сакате да ја добиете вистинската вредност на тој елемент.
Ова можеби звучи малку тривијално, но еднаш го сфаќате вистинскиот потенцијал на функцијата INDEX, таа би можела да направи клучни промени во начинот на кој ги пресметувате, анализирате и презентирате податоците во вашите работни листови.
Excel INDEX функција - синтакса и основни употреби
Постојат две верзии на функцијата INDEX во Excel - форма на низа и референтна форма. Двете форми може да се користат во сите верзии на Microsoft Excel 365 - 2003.
INDEX форма на низа
Формата на низата INDEX ја враќа вредноста на одреден елемент во опсег или низа врз основа на редот и броевите на колоните што ги одредувате.
ИНДЕКС(низа, ред_број, [број_колона])- низа - е опсег од ќелии, именуван опсег или табела.
- row_num - е бројот на редот во низата од кој се враќа вредност. Ако row_num евраќа вредност, но во оваа формула, референтниот оператор (:) го принудува да врати референца). И бидејќи $A$1 е нашата почетна точка, конечниот резултат од формулата е опсегот $A$1:$A$9.
Следната слика од екранот покажува како можете да ја користите таквата формула за индекс за да создадете динамичен пад- долу листа.
Совет. Најлесен начин да се создаде динамички ажурирана паѓачка листа е да се направи именувана листа врз основа на табела. Во овој случај, нема да ви требаат сложени формули бидејќи табелите на Excel се динамични опсези сами по себе.
Можете да ја користите и функцијата INDEX за да креирате зависни паѓачки списоци и следното упатство ги објаснува чекорите: Правење каскадна паѓачка листа во Excel.
5. Моќни Vlookups со INDEX / MATCH
Извршување вертикално пребарување - ова е местото каде што функцијата INDEX навистина блеска. Ако некогаш сте се обиделе да ја користите функцијата Excel VLOOKUP, добро сте свесни за нејзините бројни ограничувања, како што е неможноста да се извлечат вредности од колоните лево од колоната за пребарување или ограничувањето од 255 знаци за вредност за пребарување.
Врската INDEX / MATCH е супериорна во однос на VLOOKUP во многу аспекти:
- Нема проблеми со левите vlookups.
- Нема ограничување на големината на бараната вредност.
- Нема сортирање потребно е (VLOOKUP со приближно совпаѓање бара сортирање на колоната за пребарување по растечки редослед).
- Слободно можете да вметнувате и отстранувате колони во табела без ажурирањесекоја поврзана формула.
- И последно, но не и најмалку важно, INDEX / MATCH не го успорува вашиот Excel како што прават повеќе Vlookups.
Користете INDEX / MATCH на следниот начин :
=INDEX ( колона за враќање на вредност од , (MATCH ( вредност за пребарување , колона за пребарување според , 0))За на пример, ако ја превртиме нашата изворна табела така што Име на планетата станува колона во најдесната страна, формулата INDEX / MATCH сè уште добива соодветна вредност од левата колона без пречки.
За повеќе совети и пример за формула, погледнете го упатството за Excel INDEX / MATCH.
6. Формулата Excel INDEX за да добиете 1 опсег од списокот опсези
Друга паметна и моќна употреба на функцијата INDEX во Excel е можноста да се добие еден опсег од списокот опсези.
Да претпоставиме дека имате неколку списоци со различен број на ставки во секоја. Верувајте ми или не, можете да го пресметате просекот или да ги сумирате вредностите во кој било избран опсег со една формула.
Прво, вие создавате д именуван опсег за секоја листа; нека биде PlanetsD и MoonsD во овој пример:
Се надевам дека горната слика го објаснува резонирањето зад имињата на опсезите : ) BTW, табелата Месечини е далеку од комплетна, има 176 познати природни месечини во нашиот Сончев систем, само Јупитер има 63 моментално, и уште повеќе. За овој пример, избрав случаен 11, добро... можеби не сосема случајно -месечини со најубавите имиња :)
Извинете за дигресијата, назад на нашата формула ИНДЕКС. Претпоставувајќи дека PlanetsD е вашиот опсег 1 и MoonsD е опсегот 2, а ќелијата B1 е местото каде што го ставате бројот на опсегот, можете да ја користите следнава формула за индекс за да го пресметате просекот на вредностите во избраниот именуван опсег:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Внимавајте дека сега ја користиме референтната форма на функцијата INDEX, а бројот во последниот аргумент (area_num) ја кажува формулата кој опсег треба да изберете.
На сликата од екранот подолу, area_num (ќелија B1) е поставена на 2, така што формулата го пресметува просечниот дијаметар на Moons бидејќи опсегот MoonsD е на второ место во референтниот аргумент.
Ако работите со повеќе списоци и не сакате да се мачите со запомнувањето на поврзаните броеви, можете да употребите вгнездена IF функција за да го направите тоа наместо вас :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
Во функцијата IF, користите некои едноставни и лесни за паметење имиња на списоци што сакате вашите корисници да ги пишуваат во ќелијата B1 наместо броеви. Ве молиме имајте го ова на ум, за формулата да работи правилно, текстот во B1 треба да биде потполно ист (не се чувствителни на големи букви) како во параметрите на IF, инаку вашата формула за индекс ќе ја фрли грешката #VALUE.
За да ја направите формулата уште попријатна за корисникот, можете да ја користите валидацијата на податоци за да креирате паѓачка листа со претходно дефинирани имиња за да спречите правописни грешки ипогрешно печатење:
Конечно, за да ја направите вашата формула INDEX апсолутно совршена, можете да ја приложите во функцијата IFERROR што ќе го поттикне корисникот да избере ставка од паѓачката листа ако сè уште не е направен избор:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
Вака ги користите формулите INDEX во Excel. Се надевам дека овие примери ви покажаа начин да го искористите потенцијалот на функцијата INDEX во вашите работни листови. Ви благодариме што прочитавте!
испуштена, потребна е колона_број. - колона_број - е бројот на колоната од која се враќа вредност. Ако се испушти колона_број, потребен е row_num.
На пример, формулата =INDEX(A1:D6, 4, 3)
ја враќа вредноста на пресекот на 4-тиот ред и 3-та колона во опсегот A1:D6, што е вредноста во ќелијата C4 .
За да добиете идеја за тоа како формулата INDEX работи на реални податоци, погледнете го следниот пример:
Наместо да го внесете редот и броевите на колоните во формулата, можете да ги дадете референците на ќелиите за да добиете поуниверзална формула: =INDEX($B$2:$D$6, G2, G1)
Значи, оваа формула INDEX го враќа бројот на ставки точно на пресекот на бројот на производот наведен во G2 (row_num ) и бројот на неделата внесен во ќелијата G1 (колона_број).
Совет. Употребата на апсолутни референци ($B$2:$D$6) наместо релативни референци (B2:D6) во аргументот на низата го олеснува копирањето на формулата во други ќелии. Алтернативно, можете да конвертирате опсег во табела ( Ctrl + T ) и да се однесувате на него со името на табелата.
Индекс форма на низа - работи што треба да се запаметат
- Ако аргументот на низата се состои од само еден ред или колона, може или не може да го наведете соодветниот аргумент row_num или column_num.
- Ако аргументот на низата вклучува повеќе од еден ред и row_num е испуштен или поставен на 0, функцијата INDEX враќа низа од целата колона. Слично на тоа, ако низата вклучува повеќе од еднаколона и аргументот column_num е испуштен или поставен на 0, формулата INDEX го враќа целиот ред. Еве пример за формула што го покажува ова однесување.
- Аргументите row_num и column_num мора да се однесуваат на ќелија во низата; во спротивно, формулата ИНДЕКС ќе го врати #REF! грешка.
INDEX референтна форма
Референтната форма на функцијата Excel INDEX ја враќа референцата на ќелијата на пресекот на наведениот ред и колона.
INDEX(референца, ред_број , [број_колона], [број_површина] )- референца - е еден или неколку опсези.
Ако внесувате повеќе од еден опсег, одделете ги опсезите со запирки и затворете го референтниот аргумент во загради, на пример (A1:B5, D1:F5).
Исто така види: Excel TOCOL функција за претворање на опсегот во една колонаАко секој опсег во референца содржи само еден ред или колона, соодветниот аргумент row_num или column_num е опционален.
- row_num - бројот на редот во опсегот од кој се враќа референца на ќелијата, тој е сличен на низата форма.
- column_num - бројот на колоната од која се враќа референцата на ќелијата, исто така работи слично како и формата на низата.
- area_num - an опционален параметар кој одредува кој опсег од референтниот аргумент да се користи. Ако се испушти, формулата INDEX ќе го врати резултатот за првиот опсег наведен во референцата.
На пример, формулата =INDEX((A2:D3, A5:D7), 3, 4, 2)
ја враќа вредноста на ќелијата D7, која е напресек на 3-тиот ред и 4-та колона во втората област (A5:D7).
INDEX референтна форма - работи што треба да се запомнат
- Ако аргументот row_num или column_num е поставен на нула (0), формулата INDEX ја враќа референцата за целата колона или ред, соодветно.
- Ако и row_num и column_num се испуштени, функцијата INDEX ја враќа областа наведена во аргументот area_num.
- Сите _num аргументи (row_num, column_num и area_num) мора да се однесуваат на ќелија во референца; во спротивно, формулата ИНДЕКС ќе го врати #REF! грешка.
Двете формули на ИНДЕКС што ги разгледавме досега се многу едноставни и само го илустрираат концептот. Вашите вистински формули веројатно ќе бидат многу посложени од тоа, па ајде да истражиме неколку најефикасни употреби на INDEX во Excel.
Како да ја користите функцијата INDEX во Excel - примери на формули
Можеби таму не се многу практични употреби на Excel INDEX сам по себе, но во комбинација со други функции како што се MATCH или COUNTA, тој може да направи многу моќни формули.
Изворни податоци
Сите наши формули INDEX (освен последниот), ќе ги користиме податоците подолу. За погодни цели, тој е организиран во табела со име SourceData .
Употребата на табели или именувани опсези може да направи формули малку подолги, но исто така ги прави значително пофлексибилни и подобро читливи. За прилагодување на кој било ИНДЕКСформула за вашите работни листови, треба само да измените едно име, а тоа целосно ја надополнува подолгата должина на формулата.
Се разбира, ништо не ве спречува да користите вообичаени опсези ако сакате. Во овој случај, едноставно го заменувате името на табелата SourceData со соодветната референца за опсег.
1. Добивање на N-тата ставка од списокот
Ова е основната употреба на функцијата INDEX и наједноставната формула за правење. За да преземете одредена ставка од списокот, само напишете =INDEX(range, n)
каде што опсег е опсег од ќелии или именуван опсег, а n е позицијата на ставката што сакате да ја добиете.
Кога работите со табели на Excel, можете да ја изберете колоната со помош на глувчето и Excel ќе го повлече името на колоната заедно со името на табелата во формулата:
За да добиете вредност на ќелијата на пресекот на даден ред и колона, го користите истиот пристап со единствената разлика што ги одредувате и двата - бројот на редот и бројот на колоната. Всушност, веќе видовте таква формула во акција кога разговаравме за формата на низата INDEX.
И еве уште еден пример. Во нашата табела примерок, за да ја пронајдете втората најголема планета во Сончевиот систем, ја подредувате табелата по колоната Дијаметар и ја користите следнава формула ИНДЕКС:
=INDEX(SourceData, 2, 3)
-
Array
е името на табелата или референца за опсег, SourceData во овој пример. -
Row_num
е 2 затоа што ја барате втората ставкаво листата, која е во 2-та -
Column_num
е 3 бидејќи Дијаметар е третата колона во табелата.
Ако сакате да ја вратите планетата име наместо дијаметар, променете ја колоната_број во 1. И нормално, можете да користите референца на ќелија во аргументите row_num и/или колона_број за да ја направите вашата формула поразновидна, како што е прикажано на сликата од екранот подолу:
2. Добивање на сите вредности во ред или колона
Покрај преземањето на една ќелија, функцијата INDEX може да врати низа вредности од целиот ред или колона . За да ги добиете сите вредности од одредена колона, треба да го испуштите аргументот row_num или да го поставите на 0. Исто така, за да го добиете целиот ред, поминувате празна вредност или 0 во column_num.
Таквите формули INDEX тешко можат да се користат самостојно, бидејќи Excel не може да ја вклопи низата вредности вратени со формулата во една ќелија, а вие би ја добиле #VALUE! наместо тоа грешка. Меѓутоа, ако користите ИНДЕКС во врска со други функции, како што се СУМ или ПРОСЕК, ќе добиете одлични резултати.
На пример, можете да ја користите следнава формула за да ја пресметате просечната температура на планетата во Сончевиот систем:
=AVERAGE(INDEX(SourceData, , 4))
Во горната формула, аргументот колона_број е 4 бидејќи Температура во 4-та колона во нашата табела. Параметарот row_num е испуштен.
На сличен начин, можете да ги најдете минималните и максималнитетемператури:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
И пресметајте ја вкупната маса на планетата (масата е втора колона во табелата):
=SUM(INDEX(SourceData, , 2))
Од практична гледна точка, функцијата INDEX во горната формула е излишна. Можете едноставно да напишете =AVERAGE(range)
или =SUM(range)
и да ги добиете истите резултати.
Кога работите со реални податоци, оваа функција може да се покаже корисна како дел од посложените формули што ги користите за анализа на податоците.
3. Користење на INDEX со други функции (SUM, AVERAGE, MAX, MIN)
Од претходните примери, можеби ќе имате впечаток дека формулата INDEX враќа вредности, но реалноста е дека враќа референца до ќелијата што ја содржи вредноста. И овој пример ја покажува вистинската природа на функцијата Excel INDEX.
Бидејќи резултатот од формулата INDEX е референца, можеме да ја користиме во рамките на други функции за да направиме динамичен опсег . Звучи збунувачки? Следната формула ќе разјасни сè.
Да претпоставиме дека имате формула =AVERAGE(A1:A10)
која враќа просек од вредностите во ќелиите A1:A10. Наместо да го запишете опсегот директно во формулата, можете да ги замените или A1 или A10, или двете, со INDEX функции, вака:
=AVERAGE(A1 : INDEX(A1:A20,10))
Двете горенаведени формули ќе го испорачаат истото резултат затоа што функцијата INDEX исто така враќа референца до ќелијата A10 (row_num е поставен на 10, col_num испуштена). Разликата е во тоа што опсегот е просечен / ИНДЕКС формулата е динамична,и штом ќе го промените аргументот row_num во INDEX, опсегот обработен од функцијата AVERAGE ќе се промени и формулата ќе врати поинаков резултат.
Очигледно, маршрутата на формулата INDEX изгледа премногу комплицирана, но има практична примена , како што е прикажано во следните примери.
Пример 1. Пресметајте го просекот на првите N ставки во списокот
Да речеме дека сакате да го знаете просечниот дијаметар на N најголемите планети во нашиот систем . Значи, ја подредувате табелата по колона Дијаметар од најголем до најмал и ја користите следната формула Просек / Индекс:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Пример 2. Збир на ставки помеѓу наведените две ставки
Во случај да сакате да ги дефинирате ставките со горната и долната граница во вашата формула, само треба да употребите две функции INDEX за да ја вратите првата и последната ставка што ја сакате.
На пример, следнава формула го враќа збирот на вредностите во колоната Diameter помеѓу двете ставки наведени во ќелиите B1 и B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. Формула INDEX за креирање динамични опсези и паѓачки списоци
Како што често се случува, кога ќе започнете да организирате податоци во работен лист, можеби нема да знаете колку записи на крајот ќе имате. Тоа не е случај со табелата за нашите планети, која се чини дека е комплетна, но кој знае...
Во секој случај, ако имате променлив број на ставки во дадена колона, да речеме од А1 до А n ,можеби ќе сакате да креирате динамичен опсег со име што ги вклучува сите ќелии со податоци. Притоа, сакате опсегот автоматски да се прилагодува додека додавате нови ставки или бришете некои од постоечките. На пример, ако моментално имате 10 ставки, вашиот именуван опсег е A1:A10. Ако додадете нов запис, именуваниот опсег автоматски се проширува на A1:A11, а ако се премислите и ги избришете новододадените податоци, опсегот автоматски се враќа на A1:A10.
Главната предност на ова пристапот е дека не мора постојано да ги ажурирате сите формули во вашата работна книга за да се осигурате дека тие се однесуваат на точни опсези.
Еден начин да се дефинира динамички опсег е користење на функцијата Excel OFFSET:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Друго можно решение е да се користи Excel INDEX заедно со COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
Во двете формули, A1 е ќелијата што ја содржи првата ставка од списокот и произведениот динамички опсег по двете формули ќе бидат идентични.
Разликата е во пристапите. Додека функцијата OFFSET се движи од почетната точка за одреден број редови и/или колони, INDEX наоѓа ќелија на пресекот на одредена редица и колона. Функцијата COUNTA, која се користи во двете формули, го добива бројот на непразни ќелии во колоната од интерес.
Во овој пример, има 9 непразни ќелии во колоната А, па COUNTA враќа 9. Следствено, INDEX враќа $A$9, што е последната користена ќелија во колоната А (обично INDEX