
Generisk formel
=LOOKUP(2,1/(A:A""),A:A)
Sammanfattning
För att hitta värdet på den sista icke-tomma cellen i en rad eller kolumn kan du använda LOOKUP-funktionen i denna överraskande kompakta formel. Som en extra bonus är denna formel inte en matrisformel och inte flyktig.
Förklaring
Nyckeln till att förstå denna formel är att erkänna att uppslagsvärdet för 2 medvetet är större än några värden som kommer att visas i uppslagsvektorn.
- Uttrycket A: A "" returnerar en matris med sanna och falska värden: (SANT, FALSK, SANT, …).
- Talet 1 delas sedan av denna matris och skapar en ny matris som består av antingen 1 eller divideras med nollfel (# DIV / 0!): (1,0,1,…). Denna matris är lookup_vector.
- När lookup_value inte kan hittas matchar LOOKUP det näst minsta värdet.
- I det här fallet är lookup_value 2, men det största värdet i lookup_array är 1, så lookup kommer att matcha den sista 1 i arrayen.
- LOOKUP returnerar motsvarande värde i result_vector (dvs. värdet på samma position).
Hantera fel
Om det finns fel i lookup_vector, särskilt om det finns ett fel i den sista icke-tomma cellen, måste denna formel justeras. Denna justering behövs eftersom "" kriterierna returnerar ett fel i sig om en cell innehåller ett fel. Lös problemet genom att använda ISBLANK med NOT:
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),A:A)
Senaste numeriska värdet
För att få det sista numeriska värdet kan du lägga till ISNUMBER-funktionen så här:
=LOOKUP(2,1/(ISNUMBER(A1:A100)),A1:A100)
Position för det sista värdet
Om du vill få positionen (i detta fall radnummer) för det sista värdet kan du prova en sådan formel:
=LOOKUP(2,1/(A:A""),ROW(A:A))
Här matar vi radnumren i samma intervall för att leta efter resultatvektorn och får tillbaka radnumret för den senaste matchen.