Ladda ner exempelarbetsboken
Denna handledning lär dig hur du letar upp det sista värdet i kolumn eller rad i Excel.
Sista värdet i kolumn
Du kan använda LOOKUP-funktionen för att hitta den sista cellen som inte är tom i en kolumn.
1 | = LOOKUP (2,1/(B: B ""), B: B) |
Låt oss gå igenom denna formel.
Delen av formeln B: B ”” returnerar en matris som innehåller sanna och falska värden: {FALSE, TRUE, TRUE,…}. Att testa varje cell i kolumn B är tom (FALSE).
1 | = SÖK (2,1/({FALSKT; SANT; SANT; SANT; SANT; SANT; FALSKT …), B: B) |
Dessa booleska värden konverteras till 0 eller 1 och används för att dela 1.
1 | = LOOKUP (2, {#DIV/0!; 1; 1; 1; 1; 1;#DIV/0!;, B: B) |
Detta är uppslagningsvektorn för LOOKUP -funktionen. I vårt fall är lookup_value 2, men det största värdet i lookup_vector är 1, så LOOKUP -funktionen matchar den sista 1 i arrayen och returnerar motsvarande värde i result_vector.
Om du är säker på att du bara har numeriska värden i din kolumn, din data börjar från rad 1 och ditt dataintervall i kontinuerlig, kan du använda en något enklare formel med INDEX och RÄTTA -funktionerna.
1 | = INDEX (B: B, COUNT (B: B)) |
Räkningsfunktionen returnerar antalet celler fyllda med data i det kontinuerliga området (4) och INDEX -funktionen ger således cellens värde i motsvarande rad (4: e).
För att undvika eventuella fel när ditt dataområde innehåller en blandning av numeriska och icke-numeriska värden, eller till och med några tomma celler, kan du använda LOOKUP-funktionen tillsammans med ISBLANK- och NOT-funktionerna.
1 | = LOOKUP (2,1/(NOT (ISBLANK (B: B))), B: B) |
ISBLANK -funktionen returnerar en array som innehåller sanna och falska värden, motsvarande 1: or och 0: or. NOT -funktionen ändrar True (dvs. 1) till False och False (dvs. 0) till True. Om vi inverterar denna resulterande array (när vi delar 1 med denna array) får vi en resultatmatrix som innehåller igen #DIV/0! fel och 1: or, som kan användas som uppslagsmatris (lookup_vector) i vår LOOKUP -funktion. Funktionen för LOOKUP -funktionen är då densamma som den var i vårt första exempel: den returnerar värdet på resultatvektorn vid positionen för den sista 1 i uppslagsmatrisen.
När du behöver radnumret med den sista posten för att returneras kan du ändra formeln som används i vårt första exempel tillsammans med RAD -funktionen i din result_vector.
1 | = LOOKUP (2,1/(B: B ""), RAD (B: B)) |
Sista värdet i rad
För att få den sista icke-tomma cellens värde i en rad fylld med numeriska data, kanske du vill använda en liknande metod men med olika funktioner: OFFSET-funktionen tillsammans med MATCH- och MAX-funktionerna.
1 | = OFFSET (Referens, rader, kolumner) |
1 | = OFFSET (B2,0, MATCH (MAX (B2: XFD2)+1, B2: XFD2,1) -1) |
Låt oss se hur denna formel fungerar.
MATCH -funktion
Vi använder MATCH -funktionen för att "räkna" hur många cellvärden som är under 1 + maxvärdet för alla värden i rad2 från och med B2.
1 | = MATCH (lookup_value, lookup_array, [match_type]) |
1 | = MATCH (MAX (B2: XFD2)+1, B2: XFD2,1) |
Uppslagningsvärdet för MATCH -funktionen är maxvärdet för alla värden i rad2 + 1. Eftersom detta värde uppenbarligen inte existerar i rad2 och matchningstypen är inställd på 1 (mindre än eller lika med uppslagningsvärde), kommer MATCH -funktionen att returnera senaste "kontrollerade" cellens position i arrayen, det vill säga antalet celler fyllda med data i intervallet B2: XFD2 (XFD är den allra sista kolumnen i de nyare versionerna av Excel).
OFFSET -funktion
Sedan använder vi OFFSET -funktionen för att få värdet på denna cell, vars position returnerades av MATCH -funktionen.
1 | = OFFSET (B2,0, C4-1) |