Inhoudsopgave
In deze handleiding vindt u een aantal formulevoorbeelden die het meest efficiënte gebruik van INDEX in Excel demonstreren.
Van alle Excel-functies waarvan de kracht vaak wordt onderschat en onderbenut, staat INDEX zeker ergens in de top 10. Intussen is deze functie slim, soepel en veelzijdig.
Wat is de INDEX-functie in Excel? In wezen geeft een INDEX-formule een celverwijzing binnen een bepaalde matrix of bereik. Met andere woorden, u gebruikt INDEX wanneer u de positie van een element in een bereik kent (of kunt berekenen) en u de werkelijke waarde van dat element wilt verkrijgen.
Dit klinkt misschien een beetje triviaal, maar zodra u zich het werkelijke potentieel van de INDEX-functie realiseert, kan dit cruciale veranderingen teweegbrengen in de manier waarop u gegevens in uw werkbladen berekent, analyseert en presenteert.
Excel INDEX functie - syntaxis en basisgebruik
Er zijn twee versies van de INDEX-functie in Excel - de matrixvorm en de referentievorm. Beide vormen kunnen worden gebruikt in alle versies van Microsoft Excel 365 - 2003.
INDEX array vorm
De matrixvorm INDEX geeft de waarde van een bepaald element in een bereik of matrix op basis van de rij- en kolomnummers die u opgeeft.
INDEX(array, rij_nummer, [kolom_nummer])- array - is een reeks cellen, een genoemd bereik of een tabel.
- rij_nummer - is het rijnummer in de matrix waaruit een waarde moet worden teruggegeven. Als rij_getal is weggelaten, is kolom_getal vereist.
- kolom_nummer - is het kolomnummer waarvan een waarde moet worden teruggegeven. Als kolom_num is weggelaten, is rij_num vereist.
Bijvoorbeeld de formule =INDEX(A1:D6, 4, 3)
geeft de waarde terug op het snijpunt van de 4e rij en 3e kolom in het bereik A1:D6, dat is de waarde in cel C4.
Om een idee te krijgen van hoe de INDEX-formule werkt op echte gegevens, kunt u het volgende voorbeeld bekijken:
In plaats van de rij- en kolomnummers in de formule in te voeren, kunt u de celverwijzingen opgeven om een meer universele formule te krijgen: =INDEX($B$2:$D$6, G2, G1)
Deze INDEX-formule geeft dus het aantal artikelen precies op het snijpunt van het in G2 opgegeven productnummer (rij_nummer) en het in cel G1 opgegeven weeknummer (kolom_nummer).
Tip. Het gebruik van absolute verwijzingen ($B$2:$D$6) in plaats van relatieve verwijzingen (B2:D6) in het matrixargument maakt het gemakkelijker om de formule naar andere cellen te kopiëren. U kunt ook een bereik converteren naar een tabel ( Ctrl + T ) en ernaar verwijzen met de tabelnaam.
INDEX matrixvorm - dingen om te onthouden
- Indien het arrayargument slechts uit één rij of kolom bestaat, kunt u al dan niet het overeenkomstige rij_getal of kolom_getal argument specificeren.
- Als het argument array meer dan één rij bevat en row_num is weggelaten of ingesteld op 0, retourneert de INDEX-functie een array van de hele kolom. Evenzo, als array meer dan één kolom bevat en het argument column_num is weggelaten of ingesteld op 0, retourneert de INDEX-formule de hele rij. Hier is een formulevoorbeeld dat dit gedrag demonstreert.
- De argumenten row_num en column_num moeten verwijzen naar een cel binnen een matrix; anders geeft de formule INDEX de foutmelding #REF! terug.
INDEX referentieformulier
De referentievorm van de Excel INDEX-functie geeft de celverwijzing op het snijpunt van de opgegeven rij en kolom.
INDEX(reference, row_num, [column_num], [area_num] )- referentie - een of meer reeksen is.
Als u meer dan één bereik invoert, scheidt u de bereiken door komma's en zet u het referentieargument tussen haakjes, bijvoorbeeld (A1:B5, D1:F5).
Indien elk bereik in referentie slechts één rij of kolom bevat, is het overeenkomstige rij_getal of kolom_getal argument optioneel.
- rij_nummer - het rijnummer in het bereik waaruit een celverwijzing moet komen, het is vergelijkbaar met de matrixvorm.
- kolom_nummer - het kolomnummer waaruit een celverwijzing moet komen, werkt ook op dezelfde manier als de matrixvorm.
- area_num - een optionele parameter die specificeert welk bereik uit het referentieargument moet worden gebruikt. Indien weggelaten, geeft de INDEX-formule het resultaat voor het eerste bereik dat in referentie staat.
Bijvoorbeeld de formule =INDEX((A2:D3, A5:D7), 3, 4, 2)
geeft de waarde terug van cel D7, die zich bevindt op het snijpunt van de 3e rij en 4e kolom in het tweede gebied (A5:D7).
INDEX referentieformulier - dingen om te onthouden
- Als het argument row_num of column_num is ingesteld op nul (0), geeft een INDEX-formule de referentie voor de hele kolom of rij, respectievelijk.
- Indien zowel rij_nr. als kolom_nr. worden weggelaten, geeft de functie INDEX de oppervlakte terug die in het argument oppervlakte_nr. wordt gespecificeerd.
- Alle argumenten _num (row_num, column_num en area_num) moeten verwijzen naar een cel binnen referentie; anders geeft de formule INDEX de foutmelding #REF! terug.
Beide INDEX-formules die we tot nu toe hebben besproken zijn zeer eenvoudig en illustreren slechts het concept. Uw echte formules zullen waarschijnlijk veel complexer zijn dan dat, dus laten we een paar van de meest efficiënte toepassingen van INDEX in Excel verkennen.
Hoe de INDEX-functie gebruiken in Excel - formulevoorbeelden
Misschien zijn er niet veel praktische toepassingen van Excel INDEX op zichzelf, maar in combinatie met andere functies zoals MATCH of COUNTA kunnen er zeer krachtige formules mee worden gemaakt.
Bron gegevens
Voor al onze INDEX-formules (behalve de laatste) gebruiken we de onderstaande gegevens. Voor het gemak zijn ze georganiseerd in een tabel met de naam SourceData .
Het gebruik van tabellen of naamreeksen kan formules iets langer maken, maar het maakt ze ook aanzienlijk flexibeler en beter leesbaar. Om een INDEX-formule voor uw werkbladen aan te passen, hoeft u slechts een enkele naam te wijzigen, en dit maakt een langere lengte van de formule volledig goed.
Natuurlijk belet niets u om gewone reeksen te gebruiken als u dat wilt. In dit geval vervangt u gewoon de tabelnaam SourceData met de juiste bereikreferentie.
1. Het N-de item uit de lijst halen
Dit is het basisgebruik van de INDEX-functie en de eenvoudigste formule om te maken. Om een bepaald item uit de lijst op te halen, schrijft u gewoon =INDEX(range, n)
waarbij reeks een cellenreeks of een genoemd bereik is, en n is de positie van het item dat u wilt krijgen.
Wanneer u met Excel-tabellen werkt, kunt u de kolom selecteren met de muis en Excel zal de naam van de kolom samen met de naam van de tabel in de formule opnemen:
Om een waarde te krijgen van de cel op het snijpunt van een bepaalde rij en kolom, gebruikt u dezelfde aanpak met het enige verschil dat u beide opgeeft - het rijnummer en het kolomnummer. In feite zag u zo'n formule al in actie toen we de INDEX-arrayvorm bespraken.
En hier is nog een voorbeeld. In onze voorbeeldtabel, om de tweede grootste planeet in het zonnestelsel te vinden, sorteert u de tabel op de Diameter kolom, en gebruik de volgende INDEX-formule:
=INDEX(SourceData, 2, 3)
Array
is de tabelnaam, of een bereikreferentie, SourceData in dit voorbeeld.Rij_nummer
is 2 omdat u op zoek bent naar het tweede item in de lijst, die in de 2eKolom_nr.
is 3 omdat Diameter is de 3e kolom in de tabel.
Als u de naam van de planeet wilt teruggeven in plaats van de diameter, verander dan kolom_num in 1. En natuurlijk kunt u een celverwijzing gebruiken in de rij_num en/of kolom_num argumenten om uw formule veelzijdiger te maken, zoals gedemonstreerd in de schermafbeelding hieronder:
2. Alle waarden in een rij of kolom krijgen
Behalve het ophalen van een enkele cel, kan de INDEX-functie ook een array van waarden uit de hele rij of kolom Om alle waarden van een bepaalde kolom te krijgen, moet u het argument row_num weglaten of op 0 zetten. Evenzo, om de hele rij te krijgen, geeft u een lege waarde of 0 in column_num.
Dergelijke INDEX-formules kunnen nauwelijks op zichzelf worden gebruikt, omdat Excel niet in staat is de reeks waarden die de formule oplevert in een enkele cel te passen, en u in plaats daarvan de foutmelding #VALUE! Gebruikt u INDEX echter in combinatie met andere functies, zoals SUM of AVERAGE, dan krijgt u geweldige resultaten.
U kunt bijvoorbeeld de volgende formule gebruiken om de gemiddelde temperatuur van de planeten in het zonnestelsel te berekenen:
=AVERAGE(INDEX(SourceData, , 4))
In de bovenstaande formule is het argument column_num 4 omdat Temperatuur in de 4e kolom van onze tabel. De parameter row_num is weggelaten.
Op soortgelijke wijze kunt u de minimum- en maximumtemperatuur vinden:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
En bereken de totale planeetmassa (Massa is de 2e kolom in de tabel):
=SUM(INDEX(SourceData, , 2))
Vanuit praktisch oogpunt is de INDEX-functie in de bovenstaande formule overbodig. U kunt gewoon schrijven =AVERAGE(range)
of =SUM(range)
en krijg dezelfde resultaten.
Bij het werken met echte gegevens kan deze functie nuttig blijken als onderdeel van complexere formules die u gebruikt voor gegevensanalyse.
3. INDEX gebruiken met andere functies (SUM, AVERAGE, MAX, MIN)
Uit de voorgaande voorbeelden zou u de indruk kunnen krijgen dat een INDEX-formule waarden teruggeeft, maar in werkelijkheid geeft hij een referentie En dit voorbeeld demonstreert de ware aard van de Excel INDEX functie.
Aangezien het resultaat van een INDEX-formule een verwijzing is, kunnen we het binnen andere functies gebruiken om een dynamisch bereik Klinkt dat verwarrend? De volgende formule maakt alles duidelijk.
Stel u heeft een formule =GEMIDDELDE(A1:A10)
die een gemiddelde geeft van de waarden in de cellen A1:A10. In plaats van het bereik rechtstreeks in de formule te schrijven, kunt u A1 of A10, of beide, vervangen door INDEX-functies, zoals dit:
=GEMIDDELDE(A1 : INDEX(A1:A20,10))
Beide bovenstaande formules zullen hetzelfde resultaat opleveren omdat de INDEX-functie ook een verwijzing naar cel A10 teruggeeft (row_num is ingesteld op 10, col_num is weggelaten). Het verschil is dat het bereik in de AVERAGE / INDEX-formule dynamisch is, en zodra u het argument row_num in INDEX wijzigt, zal het bereik dat door de AVERAGE-functie wordt verwerkt, veranderen en zal de formule een ander resultaat opleveren.
De route van de INDEX-formule lijkt blijkbaar te ingewikkeld, maar heeft wel degelijk praktische toepassingen, zoals blijkt uit de volgende voorbeelden.
Voorbeeld 1. Bereken het gemiddelde van de bovenste N items in de lijst
Stel je wilt de gemiddelde diameter weten van de N grootste planeten in ons stelsel. Dus sorteer je de tabel op Diameter kolom van grootste naar kleinste, en gebruik de volgende Gemiddelde / Index formule:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Voorbeeld 2. Som items op tussen de opgegeven twee items
Indien u de bovengrens en ondergrens in uw formule wilt definiëren, hoeft u slechts twee INDEX-functies te gebruiken om het eerste en het laatste gewenste element te retourneren.
Bijvoorbeeld, de volgende formule geeft de som van de waarden in de Diameter kolom tussen de twee items in de cellen B1 en B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. INDEX-formule om dynamische reeksen en keuzelijsten te maken
Zoals het vaak gebeurt, als je begint met het organiseren van gegevens in een werkblad, weet je misschien niet hoeveel items je uiteindelijk zult hebben. Dat is niet het geval met onze planeten tabel, die volledig lijkt te zijn, maar wie weet...
Hoe dan ook, als u een wisselend aantal items in een bepaalde kolom hebt, bijvoorbeeld van A1 tot A n U wilt misschien een dynamisch naambereik maken dat alle cellen met gegevens bevat. Daarbij wilt u dat het bereik zich automatisch aanpast als u nieuwe items toevoegt of bestaande verwijdert. Als u bijvoorbeeld momenteel 10 items hebt, is uw naambereik A1:A10. Als u een nieuw item toevoegt, breidt het naambereik zich automatisch uit tot A1:A11, en als u van gedachten verandert en die nieuw toegevoegde gegevens verwijdert,keert het bereik automatisch terug naar A1:A10.
Het belangrijkste voordeel van deze aanpak is dat u niet voortdurend alle formules in uw werkmap hoeft bij te werken om ervoor te zorgen dat ze naar de juiste bereiken verwijzen.
Eén manier om een dynamisch bereik te definiëren is met de OFFSET-functie van Excel:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Een andere mogelijke oplossing is het gebruik van Excel INDEX in combinatie met COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
In beide formules is A1 de cel met het eerste item van de lijst en het dynamische bereik dat beide formules opleveren zal identiek zijn.
Het verschil zit in de benaderingen. Terwijl de OFFSET-functie een bepaald aantal rijen en/of kolommen verschuift vanaf het beginpunt, vindt INDEX een cel op het snijpunt van een bepaalde rij en kolom. De COUNTA-functie, die in beide formules wordt gebruikt, krijgt het aantal niet-lege cellen in de kolom van belang.
In dit voorbeeld zijn er 9 niet lege cellen in kolom A, dus COUNTA geeft 9. Bijgevolg geeft INDEX $A$9 terug, wat de laatst gebruikte cel in kolom A is (gewoonlijk geeft INDEX een waarde terug, maar in deze formule dwingt de referentieoperator (:) het om een verwijzing terug te geven). En omdat $A$1 ons uitgangspunt is, is het eindresultaat van de formule het bereik $A$1:$A$9.
Het volgende screenshot laat zien hoe u een dergelijke Index-formule kunt gebruiken om een dynamische vervolgkeuzelijst te maken.
Tip. De eenvoudigste manier om een dynamisch bijgewerkte vervolgkeuzelijst te maken, is door een lijst op naam te maken op basis van een tabel. In dit geval hebt u geen complexe formules nodig, omdat Excel-tabellen per se dynamische reeksen zijn.
U kunt ook de INDEX-functie gebruiken om afhankelijke vervolgkeuzelijsten te maken en in de volgende tutorial worden de stappen uitgelegd: Een trapsgewijze vervolgkeuzelijst maken in Excel.
5. Krachtige Vlookups met INDEX / MATCH
Verticale lookups uitvoeren - dit is waar de INDEX-functie echt schittert. Als u ooit hebt geprobeerd de VLOOKUP-functie van Excel te gebruiken, bent u zich terdege bewust van de vele beperkingen ervan, zoals het onvermogen om waarden op te halen uit kolommen links van de lookup-kolom of de limiet van 255 karakters voor een lookup-waarde.
De koppeling INDEX / MATCH is in veel opzichten superieur aan VLOOKUP:
- Geen problemen met linkse vlookups.
- Geen limiet aan de grootte van de lookup-waarde.
- Sorteren is niet nodig (bij VLOOKUP met approximate match moet de opzoekkolom wel oplopend gesorteerd worden).
- Het staat u vrij kolommen in een tabel in te voegen en te verwijderen zonder elke bijbehorende formule bij te werken.
- En last but not the least, INDEX / MATCH vertraagt uw Excel niet zoals meerdere Vlookups doen.
U gebruikt INDEX / MATCH op de volgende manier:
=INDEX ( kolom om een waarde terug te geven van , (MATCH ( opzoekwaarde , kolom om op te zoeken tegen , 0))Als we bijvoorbeeld onze brontabel zo omdraaien dat Naam planeet de meest rechtse kolom wordt, haalt de formule INDEX / MATCH nog steeds probleemloos een passende waarde uit de linkerkolom.
Voor meer tips en formulevoorbeelden, zie de Excel INDEX / MATCH handleiding.
6. Excel INDEX formule om 1 bereik te krijgen uit een lijst van bereiken
Een ander slim en krachtig gebruik van de INDEX-functie in Excel is de mogelijkheid om één bereik uit een lijst van bereiken te halen.
Stel, u hebt verschillende lijsten met elk een verschillend aantal items. Geloof me of niet, u kunt het gemiddelde of de som van de waarden in elk geselecteerd bereik berekenen met één enkele formule.
Eerst maakt u een naambereik voor elke lijst; laat dat zijn PlanetenD en MoonsD in dit voorbeeld:
Ik hoop dat bovenstaande afbeelding de redenering achter de namen van de reeksen verklaart : ) BTW, de Manen tabel is verre van volledig, er zijn 176 bekende natuurlijke manen in ons zonnestelsel, Jupiter alleen al heeft er momenteel 63, and counting. Voor dit voorbeeld koos ik willekeurig 11, nou ja... misschien niet helemaal willekeurig - manen met de mooiste namen : )
Excuseer de uitweiding, terug naar onze INDEX formule. Aangenomen dat PlanetenD is uw bereik 1 en MoonsD bereik 2 is, en cel B1 is waar u het bereiknummer zet, kunt u de volgende indexformule gebruiken om het gemiddelde te berekenen van de waarden in het geselecteerde genoemde bereik:
=AVERAGE(INDEX((PlanetenD, ManenD), , , B1))
Let erop dat we nu de referentievorm van de INDEX-functie gebruiken, en dat het getal in het laatste argument (area_num) de formule vertelt welk bereik moet worden gekozen.
In de schermafbeelding hieronder is area_num (cel B1) ingesteld op 2, dus de formule berekent de gemiddelde diameter van Manen omdat het bereik MoonsD komt als 2e in het referentieargument.
Als u met meerdere lijsten werkt en geen zin hebt om de bijbehorende nummers te onthouden, kunt u een geneste IF-functie gebruiken om dit voor u te doen:
=AVERAGE(INDEX((PlanetenD, ManenD), , , IF(B1="planeten", 1, IF(B1="manen", 2))))
In de IF-functie gebruikt u enkele eenvoudige en gemakkelijk te onthouden lijstnamen die u uw gebruikers in cel B1 wilt laten typen in plaats van getallen. Let wel, om de formule correct te laten werken, moet de tekst in B1 precies hetzelfde zijn (hoofdletterongevoelig) als in de parameters van de IF, anders zal uw Index-formule de #VALUE-fout opleveren.
Om de formule nog gebruiksvriendelijker te maken, kunt u met Gegevensvalidatie een keuzelijst met vooraf gedefinieerde namen maken om spelfouten en drukfouten te voorkomen:
Om uw INDEX-formule helemaal perfect te maken, kunt u deze tenslotte insluiten in de IFERROR-functie die de gebruiker vraagt een item uit de keuzelijst te kiezen als er nog geen selectie is gemaakt:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Selecteer de lijst!")
Dit is hoe u INDEX-formules in Excel gebruikt. Ik hoop dat deze voorbeelden u een manier hebben getoond om de mogelijkheden van de INDEX-functie in uw werkbladen te benutten. Bedankt voor het lezen!