Finde indholdet af sidste celle i en kolonne

Udfordringen i denne øvelse er at finde indholdet af den sidst tastede celle i en kolonne. Cellerne indtastes i rækkefølge, altså række 1, række 2 og så videre. Dog kan der, være placeret en formel i samme kolonne men længere nede, som selvfølgelig ikke skal indgå i "beregningen".

I dette eksempel tastes i C-kolonnen. I række 100 står en formel, som sammentæller cellerne, C1 til C99. Vi vil nu vide, hvad der sidst er tastet i c-kolonnen. Til dette formål kan vi bruge formlen:

=INDEKS(C1:C99;MAKS(HVIS(C1:C99<>"";RÆKKE(C1:C99))))

Formlen skal indtastes som en matrixformel. Det vil sige, at når formlen er indtastet, skal der afsluttes med Ctrl+Skift+Enter. Formlen vises derefter i cellen som:

{=INDEKS(C1:C99;MAKS(HVIS(C1:C99<>"";RÆKKE(C1:C99))))}

Formlen returneret det nederste indtastede tal i området C1:C99. Overspringes en celle i første omgang, fx C10, vil den alligevel returnere det, som tastes i C11, men udnytter man senere C10, vil dette ikke blive registreret som seneste indtastning, da der er indtastninger længere nede i kolonnen.

Forklaring på formlen:
Læser vi formlen inde fra vil RÆKKE(C1:C99) returnere den aktuelle række. HVIS(C1:C99<>"";RÆKKE(C1:C99)) tester om den celle, vi står i er tom. Er den det, returneres ingenting, ellers returneres rækkenummeret. Når vi indtaster formlen som en matrixformel, er der mange rækkenumre, og vi har derfor brug for at få returneret det højeste rækkenummer, hvor cellen ikke er tom. Det gør MAKS(HVIS(C1:C99<>"";RÆKKE(C1:C99))). Til sidst har vi brug for at få returneret indholdet af cellen i stedet fro rækkenummeret, og det håndterer INDEKS for os, så vi når frem til den samlede formel.

Af og til, har vi brug for at finde den nederste celle i et område, der ikke begynder i række 1. Fx C4:C99. I så fald kan vi ikke bruge formlen direkte, da RÆKKE() tæller rækkerne frarække 1. Prøver vi den ovenstående formel i dette tilfælde, vil der blive returneret 0. Det skyldes, at når jeg taster i fx række 5 er det i virkeligheden i områdets række 2. Formlen forsøger at returnere det, der står i områdets række 5 - og der står ingenting. Det antal række, jeg forskyder formlen, må derfor trækkes fra inden jeg returner værdien. I dette tilfælde er det tre rækker, og derfor skal min formel se sådan ud:

=INDEKS(C4:C100;MAKS(HVIS(C4:C100<>"";RÆKKE(C4:C100)))-3)