Excel-formel: Dynamisk navngitt område med INDEX -

Innholdsfortegnelse

Generisk formel

=$A$1:INDEX($A:$A,lastrow)

Sammendrag

En måte å lage et dynamisk navngitt område i Excel er å bruke INDEX-funksjonen. I det viste eksemplet er det navngitte området "data" definert av følgende formel:

=$A$2:INDEX($A:$A,COUNTA($A:$A))

som løser seg i området $ A $ 2: $ A $ 10.

Merk: denne formelen er ment å definere et navngitt område som kan brukes i andre formler.

Forklaring

Denne siden viser et eksempel på et dynamisk navngitt område opprettet med INDEX-funksjonen sammen med COUNTA-funksjonen. Dynamiske navneområder utvides automatisk og trekkes sammen når data legges til eller fjernes. De er et alternativ til å bruke en Excel-tabell, som også endrer størrelse når data blir lagt til eller fjernet.

INDEKS-funksjonen returnerer verdien på en gitt posisjon i et område eller en matrise. Du kan bruke INDEX til å hente individuelle verdier eller hele rader og kolonner i et område. Det som gjør INDEX spesielt nyttig for dynamiske navngitte områder, er at den faktisk returnerer en referanse. Dette betyr at du kan bruke INDEX til å lage en blandet referanse som $ A $ 1: A100.

I det viste eksemplet er det navngitte området "data" definert av følgende formel:

=$A$2:INDEX($A:$A,COUNTA($A:$A))

som løser seg i området $ A $ 2: $ A $ 10.

Hvordan denne formelen fungerer

Legg først merke til at denne formelen er sammensatt i to deler som sitter på hver side av rekkevidden (:). Til venstre har vi startreferansen for området, hardkodet som:

$A$2

Til høyre er sluttreferansen for området, opprettet med INDEX slik:

INDEX($A:$A,COUNTA($A:$A))

Her mater vi INDEKS hele kolonne A for matrisen, og bruk deretter COUNTA-funksjonen til å finne ut den "siste raden" i området. COUNTA fungerer bra her fordi det er 10 verdier i kolonne A, inkludert en topprad. COUNTA returnerer derfor 10, som går direkte inn i INDEX som radnummer. INDEX returnerer deretter en referanse til $ A $ 10, den sist brukte raden i området:

INDEX($A:$A,10) // resolves to $A$10

Så det endelige resultatet av formelen er dette området:

$A$2:$A$10

Et todimensjonalt område

Ovennevnte eksempel fungerer for et endimensjonalt område. For å lage et todimensjonalt dynamisk område hvor antall kolonner også er dynamisk, kan du bruke samme tilnærming, utvidet slik:

=$A$2:INDEX($1:$1048576,COUNTA($A:$A),COUNTA($1:$1))

Som før brukes COUNTA for å finne ut "lastrow", og vi bruker COUNTA igjen for å få "lastcolumn". Disse leveres til indeks som henholdsvis radnummer og kolonnenummer.

For matrisen leverer vi imidlertid hele regnearket, angitt som alle 1048576 rader, som gjør at INDEX kan returnere en referanse i et 2D-rom.

Merk: Excel 2003 støtter bare 65535 rader.

Bestemme den siste raden

Det er flere måter å bestemme den siste raden (siste relative posisjon) i et datasett, avhengig av strukturen og innholdet til dataene i regnearket:

  • Siste rad i blandede data med blanke
  • Siste rad i blandede data uten blanke
  • Siste rad i tekstdata
  • Siste rad i numeriske data

Gode ​​lenker

The Imposing INDEX (fantastisk artikkel av Daniel Ferry)

Interessante artikler...