
Generisk formel
(=MATCH(2,1/(range"")))
Sammanfattning
För att få den sista relativa positionen (dvs. sista raden, sista kolumnen) för blandad data som kan innehålla tomma celler kan du använda MATCH-funktionen enligt beskrivningen nedan.
Obs: detta är en matrisformel och måste anges med Control + Shift + Enter.
I exemplet som visas är formeln i E5:
(=MATCH(2,1/(B4:B10"")))
Senaste * relativa * positionen, inte rad i kalkylbladet
När du konstruerar mer avancerade formler är det ofta nödvändigt att räkna ut den sista platsen för data i en lista. Beroende på data kan detta vara den sista raden med data, den sista kolumnen med data eller skärningspunkten för båda. Vi vill ha den sista * relativa positionen * inom ett visst område, inte radnumret i kalkylbladet:
Förklaring
Denna formel använder den MATCH-funktionen som är konfigurerad för att hitta positionen för den sista icke-tomma cellen i ett intervall.
Arbetar inifrån och ut, uppslagsmatrisen inuti MATCH är konstruerad så här:
=1/(B4:B10"")) =1/(TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE) =(1;#DIV/0!;1;#DIV/0!;1;1;#DIV/0!)
Obs: alla värden i matrisen är antingen 1 eller # DIV / 0! fel.
MATCH ställs sedan in för att matcha värdet 2 i "ungefärligt matchningsläge", genom att utelämna det tredje argumentet utelämnas.
Eftersom uppslagsvärdet 2 aldrig kommer att hittas, hittar MATCH alltid den sista 1 i uppslagsmatrisen, vilket motsvarar den sista icke-tomma cellen.
Detta tillvägagångssätt fungerar med alla typer av data, inklusive siffror, text, datum, etc. Det fungerar också med nolltextsträngar som returneras med formler så här:
=IF(A1<100,"")
Dynamiskt omfång
Du kan använda denna formel för att skapa ett dynamiskt omfång med andra funktioner som INDEX och OFFSET. Se länkar nedan för exempel och förklaringar:
- Dynamiskt intervall med INDEX och COUNTA
- Dynamiskt intervall med OFFSET och COUNTA
Inspirationen för denna artikel kom från Mike Girvins utmärkta bok Control + Shift + Enter, där Mike gör ett bra jobb med att förklara begreppet "sista relativa position".