Excel INDEX-funksjon med formeleksempler

  • Dele Denne
Michael Brown

I denne opplæringen finner du en rekke formeleksempler som viser den mest effektive bruken av INDEX i Excel.

Av alle Excel-funksjoner hvis kraft ofte er undervurdert og underutnyttet, INDEX vil definitivt rangere et sted blant topp 10. I mellomtiden er denne funksjonen smart, smidig og allsidig.

Så, hva er INDEX-funksjonen i Excel? I hovedsak returnerer en INDEKS-formel en cellereferanse fra en gitt matrise eller et gitt område. Med andre ord, du bruker INDEX når du vet (eller kan beregne) posisjonen til et element i et område og du ønsker å få den faktiske verdien av det elementet.

Dette høres kanskje litt trivielt ut, men en gang du innser det virkelige potensialet til INDEX-funksjonen, kan den gjøre avgjørende endringer i måten du beregner, analyserer og presenterer data på i regnearkene dine.

    Excel INDEX-funksjonen - syntaks og grunnleggende bruk

    Det finnes to versjoner av INDEX-funksjonen i Excel - matriseform og referanseform. Begge skjemaene kan brukes i alle versjoner av Microsoft Excel 365 - 2003.

    INDEX-matriseform

    INDEX-matriseskjemaet returnerer verdien av et bestemt element i et område eller en matrise basert på raden og kolonnenummer du angir.

    INDEX(matrise, radnummer, [kolonne_nummer])
    • matrise - er et celleområde, navngitt område eller tabell.
    • radnummer - er radnummeret i matrisen som en verdi skal returneres fra. Hvis rad_nummer erreturnerer en verdi, men i denne formelen tvinger referanseoperatoren (:) den til å returnere en referanse). Og fordi $A$1 er utgangspunktet vårt, er sluttresultatet av formelen området $A$1:$A$9.

      Følgende skjermbilde viser hvordan du kan bruke en slik indeksformel for å lage en dynamisk drop- nedliste.

      Tips. Den enkleste måten å lage en dynamisk oppdatert rullegardinliste på er å lage en navngitt liste basert på en tabell. I dette tilfellet trenger du ingen komplekse formler siden Excel-tabeller er dynamiske områder i seg selv.

      Du kan også bruke INDEX-funksjonen til å lage avhengige rullegardinlister, og følgende veiledning forklarer trinnene: Lage en rullegardinliste i Excel.

      5. Kraftige Vlookups med INDEX / MATCH

      Utfører vertikale oppslag - det er her INDEX-funksjonen virkelig skinner. Hvis du noen gang har prøvd å bruke Excel VLOOKUP-funksjonen, er du godt klar over dens mange begrensninger, for eksempel manglende evne til å trekke verdier fra kolonner til venstre for oppslagskolonnen eller grense på 255 tegn for en oppslagsverdi.

      INDEX / MATCH-forbindelsen er overlegen VLOOKUP på mange måter:

      • Ingen problemer med venstre vlookups.
      • Ingen grense for størrelsen på oppslagsverdien.
      • Ingen sortering er nødvendig (VLOOKUP med omtrentlig samsvar krever sortering av oppslagskolonnen i stigende rekkefølge).
      • Du står fritt til å sette inn og fjerne kolonner i en tabell uten å oppdaterehver tilknyttede formel.
      • Og sist, men ikke minst, INDEX / MATCH bremser ikke Excel som flere Vlookups gjør.

      Du bruker INDEX / MATCH på følgende måte :

      =INDEKS ( kolonne for å returnere en verdi fra , (MATCH ( oppslagsverdi , kolonne til oppslag mot , 0))

      For for eksempel, hvis vi snur kildetabellen vår slik at Planet Name blir kolonnen lengst til høyre, henter INDEX / MATCH-formelen fortsatt en samsvarende verdi fra venstre kolonne uten problemer.

      For flere tips og formeleksempel, se veiledningen for Excel INDEX / MATCH.

      6. Excel INDEX-formel for å få 1 område fra en liste over områder

      En annen smart og kraftig bruk av INDEX-funksjonen i Excel er muligheten til å få ett område fra en liste med områder.

      Anta at du har flere lister med et forskjellig antall elementer i hver. Tro meg eller ikke, du kan beregne gjennomsnittet eller summere verdiene i et hvilket som helst valgt område med én enkelt formel.

      Først og fremst oppretter du e et navngitt område for hver liste; la det være PlanetsD og MoonsD i dette eksemplet:

      Jeg håper bildet ovenfor forklarer begrunnelsen bak navnene til områdene :) BTW, Måner -tabellen er langt fra komplett, det er 176 kjente naturlige måner i vårt solsystem, Jupiter alene har 63 for øyeblikket, og teller. For dette eksemplet valgte jeg tilfeldig 11, vel... kanskje ikke helt tilfeldig -måner med de vakreste navnene : )

      Unnskyld digresjonen, tilbake til INDEX-formelen vår. Forutsatt at PlanetsD er ditt område 1 og MoonsD er område 2, og celle B1 er der du setter områdenummeret, kan du bruke følgende indeksformel for å beregne gjennomsnittet av verdier i det valgte navngitte området:

      =AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))

      Vær oppmerksom på at nå bruker vi Reference-formen til INDEX-funksjonen, og tallet i det siste argumentet (area_num) forteller formelen hvilket område som skal velg.

      I skjermbildet nedenfor er area_num (celle B1) satt til 2, så formelen beregner gjennomsnittsdiameteren til Måner fordi området MånerD kommer på andreplass i referanseargumentet.

      Hvis du jobber med flere lister og ikke vil bry deg om å huske de tilknyttede tallene, kan du bruke en nestet HVIS-funksjon for å gjøre dette for deg :

      =AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))

      I HVIS-funksjonen bruker du noen enkle og enkle å huske listenavn som du vil at brukerne dine skal skrive inn i celle B1 i stedet for tall. Husk dette, for at formelen skal fungere riktig, bør teksten i B1 være nøyaktig den samme (uavhengig av store og små bokstaver) som i IF-parameterne, ellers vil indeksformelen din gi #VALUE-feilen.

      For å gjøre formelen enda mer brukervennlig kan du bruke Datavalidering til å lage en rullegardinliste med forhåndsdefinerte navn for å forhindre stavefeil ogfeiltrykk:

      Til slutt, for å gjøre INDEX-formelen din helt perfekt, kan du legge den ved IFERROR-funksjonen som vil be brukeren velge et element fra rullegardinlisten hvis det ikke er gjort noe valg ennå:

      =IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")

      Slik bruker du INDEX-formler i Excel. Jeg håper at disse eksemplene viste deg en måte å utnytte potensialet til INDEX-funksjonen i regnearkene dine. Takk for at du leser!

      utelatt, kolonnenummer kreves.
    • kolonne_nummer - er kolonnenummeret som en verdi skal returneres fra. Hvis kolonnenummer er utelatt, kreves radnummer.

    For eksempel returnerer formelen =INDEX(A1:D6, 4, 3) verdien i skjæringspunktet mellom 4. rad og 3. kolonne i området A1:D6, som er verdien i celle C4 .

    For å få en idé om hvordan INDEX-formelen fungerer på ekte data, vennligst ta en titt på følgende eksempel:

    I stedet for å gå inn i raden og kolonnenummer i formelen, kan du oppgi cellereferansene for å få en mer universell formel: =INDEX($B$2:$D$6, G2, G1)

    Denne INDEKS-formelen returnerer altså antall varer nøyaktig i skjæringspunktet mellom produktnummeret spesifisert i G2 (rad_nummer) ) og ukenummer angitt i celle G1 (kolonne_nummer).

    Tips. Bruken av absolutte referanser ($B$2:$D$6) i stedet for relative referanser (B2:D6) i array-argumentet gjør det enklere å kopiere formelen til andre celler. Alternativt kan du konvertere et område til en tabell ( Ctrl + T ) og referere til det med tabellnavnet.

    INDEKS-matriseform - ting å huske

    1. Hvis matriseargumentet bare består av én rad eller kolonne, kan du eller ikke spesifisere det tilsvarende radnummer- eller kolonnenummer-argumentet.
    2. Hvis matriseargumentet inkluderer mer enn én rad og rad_nummer er utelatt eller satt til 0, returnerer INDEX-funksjonen en matrise av hele kolonnen. På samme måte, hvis array inkluderer mer enn énkolonne og argumentet column_num er utelatt eller satt til 0, returnerer INDEX-formelen hele raden. Her er et formeleksempel som demonstrerer denne oppførselen.
    3. Argumentene radnummer og kolonnenummer må referere til en celle i matrisen; ellers vil INDEKS-formelen returnere #REF! feil.

    INDEKS-referanseskjema

    Referanseformen til Excel-INDEKS-funksjonen returnerer cellereferansen i skjæringspunktet mellom den angitte raden og kolonnen.

    INDEKS(referanse, rad_tall. , [column_num], [area_num] )
    • referanse - er ett eller flere områder.

      Hvis du skriver inn mer enn ett område, skiller du områdene med komma og setter referanseargumentet i parentes, for eksempel (A1:B5, D1:F5).

      Hvis hvert område i referansen bare inneholder én rad eller kolonne, det korresponderende radnummer- eller kolonnenummer-argumentet er valgfritt.

    • radnummer - radnummeret i området som en cellereferanse skal returneres fra, det ligner på matrisen form.
    • kolonne_nummer - kolonnenummeret som en cellereferanse skal returneres fra, fungerer også på samme måte som matriseformen.
    • arealnummer - en valgfri parameter som spesifiserer hvilket område fra referanseargumentet som skal brukes. Hvis den utelates, vil INDEKS-formelen returnere resultatet for det første området som er oppført i referansen.

    For eksempel returnerer formelen =INDEX((A2:D3, A5:D7), 3, 4, 2) verdien av celle D7, som er vedskjæringspunktet mellom 3. rad og 4. kolonne i det andre området (A5:D7).

    INDEKS-referanseskjema - ting å huske

    1. Hvis argumentet radnummer eller kolonnenummer settes til null (0), returnerer en INDEKS-formel referansen for henholdsvis hele kolonnen eller raden.
    2. Hvis både radnummer og kolonnenummer er utelatt, returnerer INDEKS-funksjonen området spesifisert i area_num-argumentet.
    3. Alle _num-argumentene (row_num, column_num og area_num) må referere til en celle i referansen; ellers vil INDEKS-formelen returnere #REF! feil.

    Begge INDEX-formlene vi har diskutert så langt er veldig enkle og illustrerer bare konseptet. Dine virkelige formler vil sannsynligvis være langt mer komplekse enn det, så la oss utforske noen av de mest effektive bruksområdene for INDEX i Excel.

    Hvordan bruke INDEX-funksjonen i Excel - formeleksempler

    Kanskje finnes det er ikke mange praktiske bruksområder for Excel INDEX i seg selv, men i kombinasjon med andre funksjoner som MATCH eller COUNTA, kan det lage svært kraftige formler.

    Kildedata

    Alle våre INDEX-formler (bortsett fra den siste), vil vi bruke dataene nedenfor. For enkelhets skyld er den organisert i en tabell kalt Kildedata .

    Bruk av tabeller eller navngitte områder kan lage formler litt lengre, men det gjør dem også betydelig mer fleksible og bedre lesbare. For å justere hvilken som helst INDEKSformel for regnearkene dine trenger du bare å endre ett enkelt navn, og dette veier opp for en lengre formellengde.

    Selvfølgelig er det ingenting som hindrer deg i å bruke vanlige områder hvis du vil. I dette tilfellet erstatter du ganske enkelt tabellnavnet Kildedata med den aktuelle områdereferansen.

    1. Få det nte elementet fra listen

    Dette er den grunnleggende bruken av INDEX-funksjonen og en enkleste formel å lage. For å hente et bestemt element fra listen, skriver du bare =INDEX(range, n) hvor område er et celleområde eller et navngitt område, og n er posisjonen til elementet du ønsker å hente.

    Når du arbeider med Excel-tabeller, kan du velge kolonnen med musen og Excel vil trekke kolonnenavnet sammen med tabellens navn i formelen:

    For å få en verdi av cellen i skjæringspunktet mellom en gitt rad og kolonne, bruker du samme tilnærming med den eneste forskjellen at du spesifiserer begge - radnummeret og kolonnenummeret. Faktisk så du allerede en slik formel i aksjon da vi diskuterte INDEX array form.

    Og her er ett eksempel til. I vår eksempeltabell, for å finne den nest største planeten i solsystemet, sorterer du tabellen etter Diameter -kolonnen og bruker følgende INDEKS-formel:

    =INDEX(SourceData, 2, 3)

    • Array er tabellnavnet, eller en områdereferanse, Kildedata i dette eksemplet.
    • Row_num er 2 fordi du leter etter det andre elementeti listen, som er i 2.
    • Column_num er 3 fordi Diameter er 3. kolonne i tabellen.

    Hvis du vil returnere planetens navn i stedet for diameter, endre column_num til 1. Og selvfølgelig kan du bruke en cellereferanse i row_num og/eller column_num argumentene for å gjøre formelen mer allsidig, som vist i skjermbildet nedenfor:

    2. Hente alle verdier i en rad eller kolonne

    Bortsett fra å hente en enkelt celle, kan INDEX-funksjonen returnere en rekke verdier fra hele raden eller kolonnen . For å få alle verdier fra en bestemt kolonne, må du utelate row_num-argumentet eller sette det til 0. På samme måte, for å få hele raden, sender du tom verdi eller 0 i column_num.

    Slike INDEX-formler kan vanskelig brukes alene, fordi Excel ikke er i stand til å passe utvalget av verdier som returneres av formelen i en enkelt celle, og du vil få #VALUE! feil i stedet. Men hvis du bruker INDEX sammen med andre funksjoner, som SUM eller AVERAGE, vil du få fantastiske resultater.

    Du kan for eksempel bruke følgende formel for å beregne gjennomsnittlig planettemperatur i solsystemet:

    =AVERAGE(INDEX(SourceData, , 4))

    I formelen ovenfor er argumentet column_num 4 fordi Temperatur i den fjerde kolonnen i tabellen vår. Parameteren row_num er utelatt.

    På lignende måte kan du finne minimum og maksimumtemperaturer:

    =MAX(INDEX(SourceData, , 4))

    =MIN(INDEX(SourceData, , 4))

    Og beregn den totale planetmassen (massen er den andre kolonnen i tabellen):

    =SUM(INDEX(SourceData, , 2))

    Fra praktisk synspunkt er INDEX-funksjonen i formelen ovenfor overflødig. Du kan ganske enkelt skrive =AVERAGE(range) eller =SUM(range) og få de samme resultatene.

    Når du arbeider med ekte data, kan denne funksjonen være nyttig som en del av mer komplekse formler du bruker for dataanalyse.

    3. Ved å bruke INDEX med andre funksjoner (SUM, AVERAGE, MAX, MIN)

    Fra de forrige eksemplene kan du ha et inntrykk av at en INDEX-formel returnerer verdier, men realiteten er at den returnerer en referanse til cellen som inneholder verdien. Og dette eksemplet demonstrerer den sanne naturen til Excel INDEX-funksjonen.

    Siden resultatet av en INDEX-formel er en referanse, kan vi bruke den innenfor andre funksjoner for å lage et dynamisk område . Høres forvirrende ut? Følgende formel vil gjøre alt klart.

    Anta at du har en formel =AVERAGE(A1:A10) som returnerer et gjennomsnitt av verdiene i cellene A1:A10. I stedet for å skrive området direkte i formelen, kan du erstatte enten A1 eller A10, eller begge deler, med INDEX-funksjoner, slik:

    =AVERAGE(A1 : INDEX(A1:A20,10))

    Begge formlene ovenfor vil levere det samme resultat fordi INDEX-funksjonen også returnerer en referanse til celle A10 (radnummer er satt til 10, kolonnenummer utelatt). Forskjellen er at området er AVERAGE / INDEX-formelen er dynamisk,og når du endrer row_num-argumentet i INDEX, vil området som behandles av AVERAGE-funksjonen endres og formelen vil returnere et annet resultat.

    Tilsynelatende virker INDEX-formelens rute altfor komplisert, men den har praktiske applikasjoner , som vist i de følgende eksemplene.

    Eksempel 1. Beregn gjennomsnittet av de øverste N elementene i listen

    La oss si at du vil vite gjennomsnittsdiameteren til de N største planetene i systemet vårt . Så du sorterer tabellen etter Diameter -kolonnen fra største til minste, og bruker følgende gjennomsnitts-/indeksformel:

    =AVERAGE(C5 : INDEX(SourceData[Diameter], B1))

    Eksempel 2. Sum elementer mellom de angitte to elementene

    Hvis du ønsker å definere øvre og nedre elementer i formelen din, trenger du bare å bruke to INDEX-funksjoner for å returnere den første og den siste elementet du vil ha.

    For eksempel returnerer følgende formel summen av verdier i Diameter -kolonnen mellom de to elementene spesifisert i celle B1 og B2:

    =SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))

    4. INDEKS-formel for å lage dynamiske områder og nedtrekkslister

    Som det ofte skjer, når du begynner å organisere data i et regneark, vet du kanskje ikke hvor mange oppføringer du til slutt vil ha. Det er ikke tilfelle med planeten vår, som ser ut til å være komplett, men hvem vet...

    I alle fall, hvis du har et skiftende antall elementer i en gitt kolonne, si fra A1 til A n ,Det kan være lurt å lage et dynamisk navngitt område som inkluderer alle celler med data. Da vil du at området skal justeres automatisk når du legger til nye elementer eller sletter noen av de eksisterende. For eksempel, hvis du for øyeblikket har 10 varer, er det navngitte området ditt A1:A10. Hvis du legger til en ny oppføring, utvides det navngitte området automatisk til A1:A11, og hvis du ombestemmer deg og sletter de nylig lagt til dataene, går området automatisk tilbake til A1:A10.

    Den største fordelen med dette tilnærmingen er at du ikke hele tiden trenger å oppdatere alle formler i arbeidsboken for å sikre at de refererer til riktige områder.

    En måte å definere et dynamisk område på er å bruke Excel OFFSET-funksjonen:

    =OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)

    En annen mulig løsning er å bruke Excel INDEX sammen med COUNTA:

    =Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))

    I begge formlene er A1 cellen som inneholder det første elementet i listen og det dynamiske området som produseres av begge formlene vil være identiske.

    Forskjellen ligger i tilnærmingene. Mens OFFSET-funksjonen beveger seg fra startpunktet med et visst antall rader og/eller kolonner, finner INDEX en celle i skjæringspunktet mellom en bestemt rad og kolonne. COUNTA-funksjonen, brukt i begge formlene, henter antall ikke-tomme celler i kolonnen av interesse.

    I dette eksemplet er det 9 ikke-tomme celler i kolonne A, så COUNTA returnerer 9. Følgelig returnerer INDEX $A$9, som er den sist brukte cellen i kolonne A (vanligvis INDEX

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.