Indholdsfortegnelse
I denne vejledning finder du en række eksempler på formler, der viser de mest effektive anvendelser af INDEX i Excel.
Af alle Excel-funktioner, hvis styrke ofte er undervurderet og underudnyttet, vil INDEX helt sikkert være et sted i top 10. I mellemtiden er denne funktion smart, smidig og alsidig.
Hvad er INDEX-funktionen i Excel? En INDEX-formel returnerer en cellereference fra et givet array eller område. Med andre ord bruger du INDEX, når du kender (eller kan beregne) placeringen af et element i et område, og du vil have den faktiske værdi af dette element.
Det lyder måske lidt trivielt, men når du først er klar over INDEX-funktionens reelle potentiale, kan den ændre den måde, du beregner, analyserer og præsenterer data på i dine regneark, på afgørende vis.
Excel INDEX-funktion - syntaks og grundlæggende anvendelser
Der findes to versioner af INDEX-funktionen i Excel - array-form og referenceform. Begge former kan bruges i alle versioner af Microsoft Excel 365 - 2003.
INDEX array form
INDEX-arrayformen returnerer værdien af et bestemt element i et område eller array baseret på de række- og kolonnetal, du angiver.
INDEX(array, row_num, [column_num])- array - er et område af celler, et navngivet område eller en tabel.
- row_num - er række-nummeret i arrayet, hvorfra der skal returneres en værdi. Hvis row_num udelades, er column_num påkrævet.
- kolonne_nummer - er det kolonnenummer, hvorfra der skal returneres en værdi. Hvis kolonne_num udelades, kræves row_num.
For eksempel kan formlen =INDEX(A1:D6, 4, 3)
returnerer værdien i skæringspunktet mellem den fjerde række og den tredje kolonne i intervallet A1:D6, som er værdien i celle C4.
For at få et indtryk af, hvordan INDEX-formlen fungerer på rigtige data, kan du se følgende eksempel:
I stedet for at indtaste række- og kolonnetal i formlen kan du angive cellehenvisningerne for at få en mere universel formel: =INDEX($B$2:$D$6, G2, G1)
Denne INDEX-formel returnerer altså antallet af varer, der ligger nøjagtigt i skæringspunktet mellem det produktnummer, der er angivet i G2 (row_num), og det ugenummer, der er angivet i celle G1 (column_num).
Tip. Brugen af absolutte referencer ($B$2:$D$6) i stedet for relative referencer (B2:D6) i array-argumentet gør det lettere at kopiere formlen til andre celler. Alternativt kan du konvertere et område til en tabel ( Ctrl + T ) og henvise til det ved hjælp af tabellens navn.
INDEX array-formular - ting, du skal huske
- Hvis array-argumentet kun består af én række eller kolonne, kan du angive det tilsvarende row_num- eller column_num-argument eller ej.
- Hvis array-argumentet indeholder mere end én række, og row_num er udeladt eller sat til 0, returnerer INDEX-funktionen et array med hele kolonnen. På samme måde returnerer INDEX-formlen hele rækken, hvis array indeholder mere end én kolonne, og column_num-argumentet er udeladt eller sat til 0. Her er et eksempel på en formel, der demonstrerer denne adfærd.
- Argumenterne row_num og column_num skal henvise til en celle i arrayet; ellers returnerer INDEX-formlen fejlen #REF!
INDEX-referenceformular
Referenceformen af Excel INDEX-funktionen returnerer cellereferencen i skæringspunktet mellem den angivne række og kolonne.
INDEX(reference, row_num, [column_num], [column_num], [area_num] )- reference - er et eller flere intervaller.
Hvis du indtaster mere end ét område, skal du adskille områderne med kommaer og sætte referenceargumentet i parentes, f.eks. (A1:B5, D1:F5).
Hvis hvert interval i referencen kun indeholder én række eller kolonne, er det tilsvarende row_num- eller column_num-argument valgfrit.
- row_num - rækkens nummer i området, hvorfra der skal returneres en cellereference, det svarer til array-formen.
- kolonne_nummer - kolonnenummeret, hvorfra der skal returneres en cellehenvisning, fungerer også på samme måde som array-formen.
- area_num - en valgfri parameter, der angiver, hvilket område fra referenceargumentet der skal anvendes. Hvis den udelades, returnerer INDEX-formlen resultatet for det første område, der er anført i reference.
For eksempel kan formlen =INDEX((A2:D3, A5:D7), 3, 4, 2)
returnerer værdien af celle D7, som ligger i skæringspunktet mellem den tredje række og fjerde kolonne i det andet område (A5:D7).
INDEX-referenceformular - ting, du skal huske
- Hvis argumentet row_num eller column_num er sat til nul (0), returnerer en INDEX-formel referencen for henholdsvis hele kolonnen eller rækken.
- Hvis både row_num og column_num udelades, returnerer INDEX-funktionen det område, der er angivet i argumentet area_num.
- Alle _num-argumenterne (row_num, column_num og area_num) skal henvise til en celle i referencen; ellers returnerer INDEX-formlen fejlen #REF!
Begge de INDEX-formler, vi har diskuteret indtil nu, er meget enkle og illustrerer kun konceptet. Dine rigtige formler er sandsynligvis langt mere komplekse end det, så lad os undersøge nogle få af de mest effektive anvendelser af INDEX i Excel.
Sådan bruger du INDEX-funktionen i Excel - eksempler på formler
Der er måske ikke mange praktiske anvendelser af Excel INDEX i sig selv, men i kombination med andre funktioner som MATCH eller COUNTA kan den lave meget effektive formler.
Kildeoplysninger
For alle vores INDEX-formler (undtagen den sidste) vil vi bruge nedenstående data. For nemheds skyld er de organiseret i en tabel med navnet SourceData .
Brugen af tabeller eller navngivne intervaller kan gøre formlerne lidt længere, men det gør dem også betydeligt mere fleksible og mere læsevenlige. For at justere en INDEX-formel for dine regneark skal du kun ændre et enkelt navn, og det opvejer fuldt ud den længere formellængde.
Der er naturligvis intet, der forhindrer dig i at bruge sædvanlige intervaller, hvis du ønsker det. I dette tilfælde skal du blot erstatte tabellens navn med SourceData med den relevante intervalreference.
1. Hent det N-te element fra listen
Dette er den grundlæggende brug af INDEX-funktionen og den enkleste formel at lave. For at hente et bestemt emne fra listen skriver du bare =INDEX(interval, n)
hvor rækkevidde er et område af celler eller et navngivet område, og n er positionen for det emne, du ønsker at hente.
Når du arbejder med Excel-tabeller, kan du vælge kolonnen med musen, og Excel vil trække kolonnens navn sammen med tabellens navn i formlen:
For at få værdien af cellen i skæringspunktet mellem en given række og kolonne bruger du den samme fremgangsmåde med den eneste forskel, at du angiver begge dele - række- og kolonnenummeret. Faktisk har du allerede set en sådan formel i aktion, da vi diskuterede INDEX array formularen.
Og her er endnu et eksempel: For at finde den næststørste planet i solsystemet i vores eksempeltabel skal du sortere tabellen efter Diameter kolonne, og brug følgende INDEX-formel:
=INDEX(SourceData, 2, 3)
Array
er tabellens navn eller en reference til et område, SourceData i dette eksempel.Row_num
er 2, fordi du leder efter det andet punkt på listen, som er i den 2.Kolonne_nummer
er 3, fordi Diameter er den tredje kolonne i tabellen.
Hvis du ønsker at returnere planetens navn i stedet for diameteren, skal du ændre column_num til 1. Og du kan naturligvis bruge en cellehenvisning i argumenterne row_num og/eller column_num for at gøre din formel mere alsidig, som vist på skærmbilledet nedenfor:
2. Få alle værdier i en række eller kolonne
Ud over at hente en enkelt celle kan INDEX-funktionen også returnere et array af værdier fra hele rækken eller kolonne Hvis du vil have alle værdier fra en bestemt kolonne, skal du udelade argumentet row_num eller sætte det til 0. Hvis du vil have hele rækken, skal du ligeledes angive en tom værdi eller 0 i column_num.
Sådanne INDEX-formler kan næppe bruges alene, fordi Excel ikke kan få plads til det array af værdier, som formlen returnerer, i en enkelt celle, og du ville få fejlen #VALUE! i stedet. Hvis du bruger INDEX sammen med andre funktioner, f.eks. SUM eller AVERAGE, får du dog fantastiske resultater.
Du kan f.eks. bruge følgende formel til at beregne den gennemsnitlige planetetemperatur i solsystemet:
=MIDTAL(INDEX(SourceData, , 4))
I ovenstående formel er kolonne_num-argumentet 4, fordi Temperatur i den fjerde kolonne i vores tabel. parameteren row_num er udeladt.
På samme måde kan du finde minimums- og maksimumtemperaturer:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Og beregn den samlede planetmasse (masse er den anden kolonne i tabellen):
=SUM(INDEX(SourceData, , 2))
Ud fra et praktisk synspunkt er INDEX-funktionen i ovenstående formel overflødig. Du kan blot skrive =MIDTAL(interval)
eller =SUM(interval)
og får de samme resultater.
Når du arbejder med rigtige data, kan denne funktion være nyttig som en del af mere komplekse formler, som du bruger til dataanalyse.
3. Brug af INDEX med andre funktioner (SUM, AVERAGE, MAX, MIN)
Ud fra de foregående eksempler har du måske fået det indtryk, at en INDEX-formel returnerer værdier, men i virkeligheden returnerer den en reference til den celle, der indeholder værdien. Og dette eksempel viser den sande natur af Excel INDEX-funktionen.
Da resultatet af en INDEX-formel er en reference, kan vi bruge den i andre funktioner til at lave en dynamisk område Lyder det forvirrende? Følgende formel vil gøre det hele klart.
Lad os antage, at du har en formel =GENNEMSNIT(A1:A10)
der returnerer et gennemsnit af værdierne i cellerne A1:A10. I stedet for at skrive intervallet direkte i formlen kan du erstatte enten A1 eller A10, eller begge, med INDEX-funktioner, som her:
=GENNEMSNIT(A1 : INDEKS(A1:A20,10))
Begge ovenstående formler giver det samme resultat, fordi INDEX-funktionen også returnerer en reference til celle A10 (row_num er sat til 10, col_num udeladt). Forskellen er, at intervallet i AVERAGE / INDEX-formlen er dynamisk, og når du ændrer row_num-argumentet i INDEX, ændres det område, der behandles af AVERAGE-funktionen, og formlen returnerer et andet resultat.
INDEX-formlens rute virker tilsyneladende overdrevent kompliceret, men den har praktiske anvendelser, som det fremgår af følgende eksempler.
Eksempel 1. Beregn gennemsnittet af de N øverste punkter på listen
Lad os sige, at du ønsker at kende den gennemsnitlige diameter for de N største planeter i vores system. Så du sorterer tabellen efter Diameter kolonnen fra den største til den mindste, og brug følgende formel for gennemsnit/indeks:
=MIDTAL(C5 : INDEX(SourceData[Diameter], B1))
Eksempel 2. Summen af poster mellem de to angivne poster
Hvis du ønsker at definere de øvre og nedre grænseelementer i din formel, skal du blot bruge to INDEX-funktioner til at returnere det første og det sidste element, du ønsker.
Følgende formel returnerer f.eks. summen af værdierne i Diameter kolonne mellem de to elementer, der er angivet i cellerne B1 og B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. INDEX-formel til at oprette dynamiske intervaller og drop-down-lister
Som det ofte sker, når du begynder at organisere data i et regneark, ved du måske ikke, hvor mange poster du i sidste ende vil have. Det er ikke tilfældet med vores planetabel, som ser ud til at være komplet, men hvem ved...
Men hvis du har et skiftende antal elementer i en given kolonne, f.eks. fra A1 til A n vil du måske oprette et dynamisk navngivet område, der omfatter alle celler med data. Du vil have området tilpasset automatisk, når du tilføjer nye elementer eller sletter nogle af de eksisterende. Hvis du f.eks. har 10 elementer i øjeblikket, er dit navngivne område A1:A10. Hvis du tilføjer en ny post, udvides det navngivne område automatisk til A1:A11, og hvis du skifter mening og sletter de nyligt tilføjede data,området automatisk tilbage til A1:A10.
Den største fordel ved denne fremgangsmåde er, at du ikke hele tiden skal opdatere alle formler i din projektmappe for at sikre, at de henviser til de korrekte intervaller.
En måde at definere et dynamisk område på er at bruge Excel OFFSET-funktionen:
=OFFSET(Sheet_Name!$A$1, 0, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
En anden mulig løsning er at bruge Excel INDEX sammen med COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
I begge formler er A1 den celle, der indeholder det første element i listen, og det dynamiske område, der produceres af begge formler, vil være identisk.
Forskellen ligger i fremgangsmåderne. Mens OFFSET-funktionen flytter sig fra startpunktet med et bestemt antal rækker og/eller kolonner, finder INDEX en celle i skæringspunktet mellem en bestemt række og kolonne. COUNTA-funktionen, der bruges i begge formler, får antallet af ikke-tomme celler i den pågældende kolonne.
I dette eksempel er der 9 ikke-blanke celler i kolonne A, så COUNTA returnerer 9. INDEX returnerer derfor $A$9, som er den sidst anvendte celle i kolonne A (normalt returnerer INDEX en værdi, men i denne formel tvinger referenceoperatoren (:) den til at returnere en reference). Og da $A$1 er vores udgangspunkt, er det endelige resultat af formlen intervallet $A$1:$A$9.
Følgende skærmbillede viser, hvordan du kan bruge en sådan indeksformel til at oprette en dynamisk rulleliste.
Tip. Den nemmeste måde at oprette en dynamisk opdateret rulleliste på er at lave en navngiven liste baseret på en tabel. I dette tilfælde har du ikke brug for komplekse formler, da Excel-tabeller i sig selv er dynamiske intervaller.
Du kan også bruge INDEX-funktionen til at oprette afhængige drop-down-lister, og i følgende vejledning forklares trinene: Lav en drop-down-liste i Excel med kaskadefunktion.
5. Kraftige Vlookups med INDEX / MATCH
Udførelse af vertikale opslag - det er her, INDEX-funktionen virkelig skinner. Hvis du nogensinde har prøvet at bruge Excel VLOOKUP-funktionen, er du godt klar over dens mange begrænsninger, f.eks. manglende mulighed for at trække værdier fra kolonner til venstre for opslagskolonnen eller 255 karakters grænse for en opslagsværdi.
INDEX / MATCH-forbindelsen er i mange henseender bedre end VLOOKUP:
- Ingen problemer med venstre vlookups.
- Ingen begrænsning for størrelsen af opslagsværdien.
- Der kræves ingen sortering (VLOOKUP med tilnærmelsesvis match kræver sortering af opslagskolonnen i stigende orden).
- Du kan frit indsætte og fjerne kolonner i en tabel uden at opdatere alle de tilknyttede formler.
- Sidst men ikke mindst gør INDEX / MATCH ikke Excel langsommere end flere Vlookups gør.
Du bruger INDEX / MATCH på følgende måde:
=INDEX ( kolonne til at returnere en værdi fra , (MATCH ( opslagsværdi , kolonne til opslag i forhold til , 0))Hvis vi f.eks. vender vores kildetabel, således at Planetens navn bliver den yderste kolonne til højre, henter INDEX / MATCH-formlen stadig en matchende værdi fra den venstre kolonne uden problemer.
Du kan få flere tips og eksempler på formler i Excel INDEX / MATCH-vejledningen.
6. Excel INDEX-formel til at hente 1 område fra en liste over områder
En anden smart og effektiv anvendelse af INDEX-funktionen i Excel er muligheden for at hente et område fra en liste over områder.
Antag, at du har flere lister med et forskelligt antal elementer i hver. Tro mig eller ej, du kan beregne gennemsnittet eller summen af værdierne i et hvilket som helst udvalgt område med en enkelt formel.
Først og fremmest opretter du et navngivet område for hver liste; lad det være PlanetsD og MoonsD i dette eksempel:
Jeg håber, at ovenstående billede forklarer baggrunden for navnene på intervallerne : ) BTW, den Måner tabellen er langt fra komplet, der er 176 kendte naturlige måner i vores solsystem, Jupiter alene har 63 i øjeblikket, og der er stadig flere. Til dette eksempel har jeg tilfældigt udvalgt 11, ja... måske ikke helt tilfældige - måner med de smukkeste navne : )
Undskyld afvigelsen, men vi vender tilbage til vores INDEX-formel. Hvis vi antager, at PlanetsD er dit område 1 og MoonsD er område 2, og celle B1 er den celle, hvor du har angivet områdetummeret, kan du bruge følgende indeksformel til at beregne gennemsnittet af værdierne i det valgte navngivne område:
=MIDTAL(INDEX((PlanetsD, MoonsD), , , , B1))
Vær opmærksom på, at vi nu bruger referenceformen af INDEX-funktionen, og at tallet i det sidste argument (area_num) fortæller formlen, hvilket område den skal vælge.
I skærmbilledet nedenfor er area_num (celle B1) sat til 2, så formlen beregner den gennemsnitlige diameter på Måner fordi intervallet MoonsD kommer som nummer to i referenceargumentet.
Hvis du arbejder med flere lister og ikke ønsker at huske de tilhørende numre, kan du bruge en indlejret IF-funktion til at gøre dette for dig:
=MIDTAL(INDEX((PlanetsD, MoonsD), , , , IF(B1="planeter", 1, IF(B1="måner", 2))))
I IF-funktionen bruger du nogle enkle og let at huske listenavne, som du ønsker, at dine brugere skal skrive i celle B1 i stedet for tal. Husk, at for at formlen skal fungere korrekt, skal teksten i B1 være nøjagtig den samme (med hensyn til store og små bogstaver) som i IF's parametre, ellers vil din Indeks-formel give en #VALUE-fejl.
For at gøre formlen endnu mere brugervenlig kan du bruge Datavalidering til at oprette en rulleliste med foruddefinerede navne for at undgå stavefejl og trykfejl:
Hvis du vil gøre din INDEX-formel helt perfekt, kan du til sidst inkludere den i IFERROR-funktionen, der beder brugeren om at vælge et emne fra rullelisten, hvis der endnu ikke er foretaget et valg:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , , IF(B1="planet", 1, IF(B1="måne", 2)))), "Vælg venligst listen!")
Sådan bruger du INDEX-formler i Excel. Jeg håber, at disse eksempler har vist dig en måde at udnytte potentialet i INDEX-funktionen i dine regneark på. Tak for læsningen!