INHOUDSOPGAWE
In hierdie tutoriaal sal jy 'n aantal formulevoorbeelde vind wat die doeltreffendste gebruike van INDEX in Excel demonstreer.
Van alle Excel-funksies waarvan die krag dikwels onderskat en onderbenut word, INDEX sal beslis iewers in die top 10 rangskik. Intussen is hierdie funksie slim, soepel en veelsydig.
So, wat is die INDEX-funksie in Excel? In wese gee 'n INDEX-formule 'n selverwysing van binne 'n gegewe skikking of reeks terug. Met ander woorde, jy gebruik INDEX wanneer jy die posisie van 'n element in 'n reeks ken (of kan bereken) en jy die werklike waarde van daardie element wil kry.
Dit klink dalk 'n bietjie triviaal, maar een keer as jy die werklike potensiaal van die INDEX-funksie besef, kan dit deurslaggewende veranderinge aanbring aan die manier waarop jy data in jou werkkaarte bereken, ontleed en aanbied.
Excel INDEX-funksie - sintaksis en basiese gebruike
Daar is twee weergawes van die INDEX-funksie in Excel - skikkingsvorm en verwysingsvorm. Albei vorms kan in alle weergawes van Microsoft Excel 365 - 2003 gebruik word.
INDEX-skikkingvorm
Die INDEX-skikkingsvorm gee die waarde van 'n sekere element in 'n reeks of skikking terug op grond van die ry en kolomnommers wat jy spesifiseer.
INDEX(skikking, ry_getal, [kolom_getal])- skikking - is 'n reeks selle, benoemde reeks, of tabel.
- rynommer - is die rynommer in die skikking waaruit 'n waarde teruggestuur moet word. As ry_getal isgee 'n waarde terug, maar in hierdie formule dwing die verwysingsoperateur (:) dit om 'n verwysing terug te gee). En omdat $A$1 ons beginpunt is, is die finale resultaat van die formule die reeks $A$1:$A$9.
Die volgende skermkiekie demonstreer hoe jy so 'n Indeksformule kan gebruik om 'n dinamiese druppel- aflys.
Wenk. Die maklikste manier om 'n dinamies bygewerkte aftreklys te skep, is om 'n benoemde lys op grond van 'n tabel te maak. In hierdie geval het jy geen komplekse formules nodig nie, aangesien Excel-tabelle per se dinamiese reekse is.
Jy kan ook die INDEX-funksie gebruik om afhanklike aftreklyste te skep en die volgende tutoriaal verduidelik die stappe: Maak 'n vloeiende aftreklys in Excel.
5. Kragtige Vlookups met INDEX / MATCH
Voor vertikale soektogte - dit is waar die INDEX-funksie werklik skyn. As jy al ooit probeer het om Excel VLOOKUP-funksie te gebruik, is jy deeglik bewus van die talle beperkings daarvan, soos die onvermoë om waardes van kolomme aan die linkerkant van die opsoekkolom te trek of 255-karakterslimiet vir 'n opsoekwaarde.
Die INDEX / MATCH skakeling is beter as VLOOKUP in baie opsigte:
- Geen probleme met links vlookups nie.
- Geen beperking op die opsoekwaardegrootte nie.
- Geen sortering is vereis (VLOOKUP met benaderde passing vereis wel dat die opsoekkolom in stygende volgorde gesorteer word).
- Dit staan jou vry om kolomme in 'n tabel in te voeg en te verwyder sonder om op te dateerelke geassosieerde formule.
- En die laaste maar nie die minste nie, INDEX / MATCH vertraag nie jou Excel soos verskeie Vlookups doen nie.
Jy gebruik INDEX / MATCH op die volgende manier :
=INDEKS ( kolom om 'n waarde van terug te gee, (MATCH ( opsoekwaarde , kolom om teen op te soek , 0))Vir as ons byvoorbeeld ons brontabel omdraai sodat Planeetnaam die mees regterkantste kolom word, haal die INDEX / MATCH-formule steeds 'n bypassende waarde uit die linkerkantse kolom sonder 'n haakplek.
Vir meer wenke en formule-voorbeeld, sien asseblief die Excel INDEX / MATCH-tutoriaal.
6. Excel INDEX-formule om 1 reeks uit 'n lys reekse te kry
Nog 'n slim en kragtige gebruik van die INDEX-funksie in Excel is die vermoë om een reeks uit 'n lys reekse te kry.
Gestel, jy het verskeie lyste met 'n verskillende aantal items in elk. Glo my of nie, jy kan die gemiddelde bereken of die waardes in enige geselekteerde reeks optel met 'n enkele formule.
Eerstens skep jy e 'n benoemde reeks vir elke lys; laat dit PlaneteD en ManeD wees in hierdie voorbeeld:
Ek hoop die prent hierbo verduidelik die redenasie agter die reekse se name :) BTW, die Mane -tabel is nog lank nie voltooi nie, daar is 176 bekende natuurlike mane in ons Sonnestelsel, Jupiter alleen het tans 63, en dit is nog steeds. Vir hierdie voorbeeld het ek lukraak 11 gekies, wel ... miskien nie heeltemal lukraak nie -mane met die mooiste name : )
Verskoon asseblief die afwyking, terug na ons INDEKS-formule. As ons aanvaar dat PlaneteD jou reeks 1 is en ManeD reeks 2 is, en sel B1 is waar jy die reeksnommer plaas, kan jy die volgende Indeksformule gebruik om die gemiddeld van waardes in die geselekteerde benoemde reeks:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Let asseblief daarop dat ons nou die verwysingsvorm van die INDEX-funksie gebruik, en die getal in die laaste argument (area_num) vertel die formule watter reeks om kies.
In die skermkiekie hieronder is area_num (sel B1) op 2 gestel, so die formule bereken die gemiddelde deursnee van Mane omdat die reeks ManeD tweede is in die verwysingsargument.
As jy met veelvuldige lyste werk en nie die moeite wil doen om die gepaardgaande nommers te onthou nie, kan jy 'n geneste IF-funksie gebruik om dit vir jou te doen :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
In die IF-funksie gebruik jy 'n paar eenvoudige en maklik om te onthou lysname wat jy wil hê jou gebruikers moet in sel B1 tik in plaas van nommers. Hou dit asseblief in gedagte, vir die formule om korrek te werk, moet die teks in B1 presies dieselfde (hoofletter-onsensitief) wees as in die IF se parameters, anders sal jou Indeksformule die #VALUE-fout gooi.
Om die formule nog meer gebruikersvriendelik te maak, kan jy Data Validation gebruik om 'n aftreklys met voorafbepaalde name te skep om spelfoute endrukfoute:
Laastens, om jou INDEX-formule absoluut perfek te maak, kan jy dit insluit in die IFERROR-funksie wat die gebruiker sal vra om 'n item uit die aftreklys te kies as daar nog geen keuse gemaak is nie:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
Dit is hoe jy INDEX-formules in Excel gebruik. Ek is hoopvol dat hierdie voorbeelde vir jou 'n manier gewys het om die potensiaal van die INDEX-funksie in jou werkkaarte te benut. Dankie dat jy gelees het!
weggelaat word, word kolom_nommer vereis. - kolom_nommer - is die kolomnommer waaruit 'n waarde teruggestuur moet word. As kolom_getal weggelaat word, word ry_getal vereis.
Byvoorbeeld, die formule =INDEX(A1:D6, 4, 3)
gee die waarde terug by die kruising van die 4de ry en 3de kolom in reeks A1:D6, wat die waarde in sel C4 is .
Om 'n idee te kry van hoe die INDEX-formule op werklike data werk, kyk asseblief na die volgende voorbeeld:
In plaas daarvan om die ry in te voer en kolomnommers in die formule, kan jy die selverwysings verskaf om 'n meer universele formule te kry: =INDEX($B$2:$D$6, G2, G1)
Dus, hierdie INDEKS-formule gee die aantal items presies by die kruising van die produknommer gespesifiseer in G2 (ry_getal) terug ) en weeknommer ingevoer in sel G1 (kolom_nommer).
Wenk. Die gebruik van absolute verwysings ($B$2:$D$6) in plaas van relatiewe verwysings (B2:D6) in die skikkingsargument maak dit makliker om die formule na ander selle te kopieer. Alternatiewelik kan jy 'n reeks omskakel na 'n tabel ( Ctrl + T ) en daarna verwys met die tabelnaam.
INDEKS skikkingsvorm - dinge om te onthou
- As die skikkingsargument net uit een ry of kolom bestaan, kan jy die ooreenstemmende ry_getal of kolom_getal argument spesifiseer of nie.
- As die skikkingsargument meer as een ry insluit en ry_getal is weggelaat of op 0 gestel, gee die INDEX-funksie 'n skikking van die hele kolom terug. Net so, as skikking meer as een insluitkolom en die kolom_num-argument weggelaat of op 0 gestel word, gee die INDEX-formule die hele ry terug. Hier is 'n formule voorbeeld wat hierdie gedrag demonstreer.
- Die ry_getal en kolom_getal argumente moet verwys na 'n sel binne skikking; anders sal die INDEKS-formule die #REF! fout.
INDEKS-verwysingsvorm
Die verwysingsvorm van die Excel INDEX-funksie gee die selverwysing terug by die kruising van die gespesifiseerde ry en kolom.
INDEX(verwysing, ry_getal) , [kolom_nommer], [area_num] )- verwysing - is een of meer reekse.
As jy meer as een reeks invoer, skei die reekse deur kommas en sluit die verwysingsargument tussen hakies in, byvoorbeeld (A1:B5, D1:F5).
As elke reeks in verwysing slegs bevat een ry of kolom, die ooreenstemmende ry_getal of kolom_getal argument is opsioneel.
- rynommer - die rynommer in die reeks waaruit 'n selverwysing teruggestuur moet word, dit is soortgelyk aan die skikking vorm.
- kolomnommer - die kolomnommer waaruit 'n selverwysing teruggestuur moet word, werk ook soortgelyk aan die skikkingsvorm.
- area_num - 'n opsionele parameter wat spesifiseer watter reeks van die verwysingsargument om te gebruik. As dit weggelaat word, sal die INDEKS-formule die resultaat vir die eerste reeks wat in verwysing gelys is, terugstuur.
Byvoorbeeld, die formule =INDEX((A2:D3, A5:D7), 3, 4, 2)
gee die waarde van sel D7 terug, wat by diekruising van die 3de ry en 4de kolom in die tweede area (A5:D7).
INDEKS verwysingsvorm - dinge om te onthou
- Indien die ry_getal of kolom_getal argument is op nul (0) gestel, 'n INDEKS-formule gee die verwysing vir die hele kolom of ry, onderskeidelik.
- As beide ry_getal en kolom_getal weggelaat word, gee die INDEKS-funksie die area wat gespesifiseer is in die area_num argument.
- Al die _num argumente (ry_num, kolom_num en area_num) moet verwys na 'n sel binne verwysing; anders sal die INDEKS-formule die #REF! fout.
Albei die INDEKS-formules wat ons tot dusver bespreek het, is baie eenvoudig en illustreer slegs die konsep. Jou werklike formules sal waarskynlik baie meer kompleks as dit wees, so kom ons ondersoek 'n paar mees doeltreffende gebruike van INDEX in Excel.
Hoe om INDEX-funksie in Excel te gebruik - formulevoorbeelde
Miskien is daar is nie baie praktiese gebruike van Excel INDEX op sigself nie, maar in kombinasie met ander funksies soos MATCH of COUNTA, kan dit baie kragtige formules maak.
Brondata
Al ons INDEX-formules (behalwe vir die laaste een), sal ons die onderstaande data gebruik. Vir geriefsdoeleindes is dit georganiseer in 'n tabel genaamd Brondata .
Die gebruik van tabelle of benoemde reekse kan formules maak 'n bietjie langer, maar dit maak hulle ook aansienlik meer buigsaam en beter leesbaar. Om enige INDEX aan te pasformule vir jou werkblaaie hoef jy net 'n enkele naam te wysig, en dit maak ten volle op vir 'n langer formulelengte.
Natuurlik verhinder niks jou om gewone reekse te gebruik as jy wil nie. In hierdie geval vervang jy eenvoudig die tabelnaam Brondata met die toepaslike reeksverwysing.
1. Om die Nde item uit die lys te kry
Dit is die basiese gebruik van die INDEX-funksie en 'n eenvoudigste formule om te maak. Om 'n sekere item uit die lys te haal, skryf jy net =INDEX(range, n)
waar reeks 'n reeks selle of 'n benoemde reeks is, en n is die posisie van die item wat jy wil kry.
Wanneer jy met Excel-tabelle werk, kan jy die kolom met die muis kies en Excel sal die kolom se naam saam met die tabel se naam in die formule trek:
Om 'n waarde van die sel by die snypunt van 'n gegewe ry en kolom te kry, gebruik jy dieselfde benadering met die enigste verskil wat jy beide spesifiseer - die rynommer en die kolomnommer. Trouens, jy het reeds so 'n formule in aksie gesien toe ons INDEX skikkingsvorm bespreek het.
En hier is nog 'n voorbeeld. In ons voorbeeldtabel, om die 2de grootste planeet in die Sonnestelsel te vind, sorteer jy die tabel volgens die Diameter -kolom en gebruik die volgende INDEKS-formule:
=INDEX(SourceData, 2, 3)
-
Array
is die tabelnaam, of 'n reeksverwysing, Brondata in hierdie voorbeeld. -
Row_num
is 2 omdat jy na die tweede item soekin die lys, wat in die 2de is -
Column_num
is 3 omdat Diameter die 3de kolom in die tabel is.
As jy die planeet se naam eerder as deursnee, verander column_num na 1. En natuurlik kan jy 'n selverwysing in die ry_num en/of kolom_num argumente gebruik om jou formule meer veelsydig te maak, soos gedemonstreer in die skermkiekie hieronder:
2. Om alle waardes in 'n ry of kolom te kry
Behalwe om 'n enkele sel te herwin, is die INDEX-funksie in staat om 'n verskeidenheid waardes van die hele ry of kolom terug te gee . Om alle waardes uit 'n sekere kolom te kry, moet jy die row_num-argument weglaat of dit op 0 stel. Net so, om die hele ry te kry, gee jy leë waarde of 0 in kolom_num deur.
Sulke INDEX-formules kan beswaarlik op hul eie gebruik word, want Excel kan nie die reeks waardes wat deur die formule teruggestuur word in 'n enkele sel pas nie, en jy sal die #VALUE! fout in plaas daarvan. As jy INDEX egter saam met ander funksies gebruik, soos SOM of AVERAGE, sal jy wonderlike resultate kry.
Jy kan byvoorbeeld die volgende formule gebruik om die gemiddelde planeettemperatuur in die Sonnestelsel te bereken:
=AVERAGE(INDEX(SourceData, , 4))
In die formule hierbo is die kolom_num-argument 4 omdat Temperature in die 4de kolom in ons tabel. Die row_num parameter word weggelaat.
Op 'n soortgelyke manier kan jy die minimum en maksimum vindtemperature:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
En bereken die totale planeetmassa (massa is die 2de kolom in die tabel):
=SUM(INDEX(SourceData, , 2))
Vanuit praktiese oogpunt is die INDEX-funksie in die formule hierbo oorbodig. Jy kan eenvoudig =AVERAGE(range)
of =SUM(range)
skryf en dieselfde resultate kry.
Wanneer jy met regte data werk, kan hierdie kenmerk nuttig wees as deel van meer komplekse formules wat jy vir data-analise gebruik.
3. Die gebruik van INDEX met ander funksies (SOM, AVERAGE, MAX, MIN)
Uit die vorige voorbeelde kan jy dalk onder die indruk verkeer dat 'n INDEX-formule waardes gee, maar die realiteit is dat dit 'n verwysing gee na die sel wat die waarde bevat. En hierdie voorbeeld demonstreer die ware aard van die Excel INDEX-funksie.
Aangesien die resultaat van 'n INDEX-formule 'n verwysing is, kan ons dit binne ander funksies gebruik om 'n dinamiese reeks te maak. Klink verwarrend? Die volgende formule sal alles duidelik maak.
Gestel jy het 'n formule =AVERAGE(A1:A10)
wat 'n gemiddeld van die waardes in selle A1:A10 gee. In plaas daarvan om die reeks direk in die formule te skryf, kan jy óf A1 óf A10, óf albei, vervang met INDEX-funksies, soos volg:
=AVERAGE(A1 : INDEX(A1:A20,10))
Albei die bogenoemde formules sal dieselfde lewer gevolg omdat die INDEX-funksie ook 'n verwysing na sel A10 terugstuur (ry_getal is op 10 gestel, kol_getal weggelaat). Die verskil is dat die reeks is die GEMIDDELDE / INDEKS formule is dinamies,en sodra jy die ry_num-argument in INDEX verander het, sal die reeks wat deur die AVERAGE-funksie verwerk word verander en die formule sal 'n ander resultaat gee.
Blykbaar lyk die INDEX-formule se roete te ingewikkeld, maar dit het praktiese toepassings , soos gedemonstreer in die volgende voorbeelde.
Voorbeeld 1. Bereken gemiddelde van die top N items in die lys
Kom ons sê jy wil die gemiddelde deursnee van die N grootste planete in ons stelsel weet . So, jy sorteer die tabel volgens Diameter kolom van grootste na kleinste, en gebruik die volgende Gemiddelde / Indeks formule:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Voorbeeld 2. Som items tussen die gespesifiseerde twee items
In die geval dat jy die boonste- en ondergrens-items in jou formule wil definieer, moet jy net twee INDEX-funksies gebruik om die eerste en die laaste item wat jy wil hê.
Byvoorbeeld, die volgende formule gee die som van waardes in die Diameter kolom terug tussen die twee items gespesifiseer in selle B1 en B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. INDEKS-formule om dinamiese reekse en aftreklyste te skep
Soos dit dikwels gebeur, wanneer jy data in 'n werkblad begin organiseer, weet jy dalk nie hoeveel inskrywings jy uiteindelik sal hê nie. Dit is nie die geval met ons planete-tabel nie, wat lyk asof dit volledig is, maar wie weet...
In elk geval, as jy 'n veranderende aantal items in 'n gegewe kolom het, sê van A1 na A n ,jy wil dalk 'n dinamiese benoemde reeks skep wat alle selle met data insluit. Dan wil jy hê dat die reeks outomaties moet aanpas soos jy nuwe items byvoeg of sommige van die bestaande uitvee. Byvoorbeeld, as jy tans 10 items het, is jou genoemde reeks A1:A10. As jy 'n nuwe inskrywing byvoeg, brei die genoemde reeks outomaties uit na A1:A11, en as jy van plan verander en daardie nuut bygevoegde data uitvee, keer die reeks outomaties terug na A1:A10.
Die grootste voordeel hiervan benadering is dat jy nie voortdurend alle formules in jou werkboek hoef op te dateer om te verseker dat hulle na korrekte reekse verwys nie.
Een manier om 'n dinamiese reeks te definieer, is om Excel OFFSET-funksie te gebruik:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Nog 'n moontlike oplossing is om Excel INDEX te gebruik saam met COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
In beide formules is A1 die sel wat die eerste item van die lys bevat en die dinamiese reeks wat geproduseer word deur beide formules identies sal wees.
Die verskil is in die benaderings. Terwyl die OFFSET-funksie van die beginpunt af beweeg met 'n sekere aantal rye en/of kolomme, vind INDEX 'n sel by die kruising van 'n spesifieke ry en kolom. Die COUNTA-funksie, wat in beide formules gebruik word, kry die aantal nie-leë selle in die kolom van belang.
In hierdie voorbeeld is daar 9 nie-leë selle in kolom A, so COUNTA gee 9 terug. Gevolglik gee INDEX $A$9 terug, wat die laaste gebruikte sel in kolom A is (gewoonlik INDEX