Excel VLOOKUP för att hitta sista värdet i kolumnen (med alternativ)

  • Dela Detta
Hugh West

VLOOKUP är en mycket populär funktion i Excel som hänvisar till den vertikala uppslagsfunktionen. Vi kan använda den inbyggda funktionen VLOOKUP eller så kan vi till och med skapa egna formler som fungerar som vertikal lookup för att returnera värden med mer dynamiska kriterier. I den här artikeln ska jag visa hur man hittar det senaste värdet i en kolumn med hjälp av VLOOKUP i Excel.

Ladda ner övningsboken

Ladda ner Excel-arbetsboken som vi har använt för att förbereda den här artikeln.

VLOOKUP Sista värdet i kolumnen.xlsx

Användning av VLOOKUP-funktionen för att hitta det sista värdet i en kolumn

Låt oss först få en introduktion till vår arbetsbok. I det här databladet har jag använt mig av 3 kolumner och 10 rader presentera vissa säljares försäljningsbelopp enligt motsvarande datum.

I den här metoden hittar vi den sista förekomsten av ett värde genom att använda VLOOKUP-funktionen . VLOOKUP står för ' Vertikal sökning Det är en funktion som gör att Excel söker efter ett visst värde i en kolumn. Här har vi 3 olika försäljningsbelopp på Bill. Nu ska vi hitta beloppet för hans senaste försäljning i Cell G5

Steg :

➦ Aktivera Cell G5, skriv in formeln nedan:

=VLOOKUP(F5,C5:D13,2)

➦ Slå till på Gå in på så får du den sista försäljningen av honom.

Men VLOOKUP ger inte rätt svar för osorterade data i approximativt läge. Se bilden nedan.

Och om vi använder den exakt samma sak för det fjärde argumentet kommer den att visa den första matchningen som i bilden nedan. Eftersom vlookup använder binär sökning. Så när den hittar ett värde som är större än sökvärdet återgår den till det tidigare värdet för att visa, se bilden nedan.

Så för att lösa den här situationen för osorterade data för att hitta den sista förekomsten måste vi använda uppslagsfunktioner eller andra kombinerade formler. Vi kommer att diskutera dessa metoder i följande avsnitt.

Alternativ till VLOOKUP-funktionen för att hitta sista värdet i kolumnen

Nu ska vi använda fyra alternativa metoder för att hitta det sista värdet i en kolumn.

Metod 1: Använd LOOKUP-funktionen för att hitta det sista värdet i kolumnen

Här hittar vi det sista värdet i en kolumn med LOOKUP-funktionen i Excel. LOOKUP funktionen används för att leta i en kolumn eller rad för att hitta ett visst värde från samma plats i en andra kolumn eller rad. Jag hittar det senaste försäljningsbeloppet här i Cell G4.

Steg:

➦ Aktivera Cell G4.

➦ Skriv formeln nedan:

=LOOKUP(2,1/(D:D""),D:D)

➦ Tryck sedan på Gå in på så får du det sista värdet.

👉 Uppdelning av formlerna:

D:D""

Här kontrolleras om cellerna i Kolumn D är tomma eller inte. Den kommer att återge som-

{FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE.....}

1/(D:D"")

Vi har delat upp 1 av resultatet. Eftersom FALSE betyder 0 och TRUE betyder 1 så resultatet blir följande:

{#DIV/0!;#DIV/0!;#DIV/0!;1;1;1;1;1;1;1;1;1;1;1;#DIV/0!;#DIV/0!}

LOOKUP(2,1/(D:D""),D:D)

Jag har ställt in uppslagsvärdet 2 eftersom uppslagsfunktionen kommer att hitta 2 genom kolumnen, när den når fel kommer den att återgå till sitt närmaste värde 1 och visa det resultatet. Det kommer att återgå som-

367

Metod 2: Använd funktionerna INDEX och MATCH för att hitta det sista värdet i kolumnen

Här använder vi kombinationen av INDEX och MATCH funktioner. INDEX-funktionen returnerar ett värde eller en referens till ett värde från en tabell eller ett intervall. och funktionen MATCH används för att söka efter ett specificerat objekt i ett intervall och returnerar sedan den relativa positionen för det objektet i intervallet.

Steg:

➦ Skriv formeln nedan i Cell G5

=INDEX(D5:D13,MATCH(F5,C5:C13,1))

➦ Hit Gå in på knapp.

👉 Hur fungerar formeln:

MATCH(F5,C5:C13,1)

Här funktionen MATCH används för att hitta värdet av Cell F5 för objekt som sorteras i stigande ordning från matrisen C5:C13. Om det tredje argumentet sätts till "1" indikerar det en ungefärlig matchning. Nu returnerar funktionen som-

6

Den visar faktiskt radnumret räknat från den första posten.

INDEX(D5:D13,MATCH(F5,C5:C13,1))

Och INDEX-funktionen kommer att ge motsvarande försäljning ( D5:D13) i enlighet med den föregående matchningen i matrisen ( C5:C13) som kommer att återge som-

367

Detta är faktiskt den sista gången som Cell F5

Metod 3: Kombination av INDEX-, MAX-, SUMPRODUCT- och ROW-funktioner för att hitta det sista värdet i kolumnen

Nu ska vi utföra uppgiften med kombinationen av INDEX, MAX, SUMPRODUCT och ROW funktioner. ROW-funktionen hittar radnumren. SUMPRODUCT är en funktion som multiplicerar ett intervall av celler eller matriser och returnerar summan av produkterna. Funktionen MAX kommer att hitta det högsta antalet. INDEX funktionen returnerar ett värde eller en referens till ett värde från en tabell eller ett intervall.

Steg:

➦ Aktivera redigering i Cell F7

➦ Kopiera och klistra in formeln nedan:

=INDEX($C$5:$C$13,SUMPRODUCT(MAX(ROW($B$5:$B$13)*($E$7=$B$5:$B$13))-4))

➦ Och tryck på Gå in på knapp.

👉 Hur fungerar formeln:

RAD($B$5:$B$13)

ROW-funktionen visar radnumret för matrisen som returneras som-

{5;6;7;8;9;10;11;12;13}

($E$7=$B$5:$B$13)

Här Cell E7 är vårt uppslagsvärde och den här formeln kommer att matcha det genom matrisen B5:B13 Då kommer den att återges som-

{FALSK;FALSKT;FALSKT;FALSKT;FALSKT;SANT;FALSKT;FALSKT;FALSKT;FALSKT;SANT;SANT}

ROW($B$5:$B$13)*($E$7=$B$5:$B$13)

Det är multiplikationen av de två föregående formlerna som faktiskt multiplicerar motsvarande radnummer. FALSK betyder 0 och TRUE betyder 1 Så efter multiplikation kommer den att återges som-

{0;0;0;0;9;0;0;0;13}

MAX(ROW($B$5:$B$13)*($E$7=$B$5:$B$13))

MAX funktionen kommer att hitta det högsta värdet från det föregående resultatet som återges som

13

SUMPRODUCT(MAX(ROW($B$5:$B$13)*($E$7=$B$5:$B$13))-4)

Nu är det SUMPRODUCT funktionen används för att hitta radnumret i matrisen . Eftersom vår lista börjar från 5:e rad och framåt, 4 har subtraherats, så positionen för den sista förekomsten av Bill är 9 på vår lista så att formeln kommer att ge tillbaka som-

9 .

INDEX($C$5:$C$13,SUMPRODUCT(MAX(ROW($B$5:$B$13)*($E$7=$B$5:$B$13))-4)))

INDEX funktionen används för att hitta försäljningen för det senast matchade namnet. Och den kommer att återge som-

563

Detta är vår sista händelse för Bill.

Metod 4: Använd Excel VBA för att hitta den senaste förekomsten av ett värde i en kolumn

Om du gillar att koda i Excel är den här metoden lämplig för dig. Vi kan utföra den tidigare operationen med hjälp av VBA-metoden också. Låt oss gå igenom följande steg för att se hur vi enkelt kan göra det.

Först skapar jag en rullgardinslist för de unika namnen och sedan en ny användardefinierad funktion " LastItemLookup " med hjälp av VBA som vi ska använda för att hitta den sista förekomsten.

Steg 1:

➦ Först kopierar du de unika namnen från huvudbladet till ett nytt blad.

Steg 2:

➦ Gå sedan till huvudbladet. Aktivera en ny cell. Jag valde E5.

➦ Klicka Data> Dataverktyg> Datavalidering.

A dialogruta kommer att visas.

Steg 3:

➦ Välj Lista från Tillåt bar.

➦ Tryck sedan på öppna ikonen från den Källa bar.

Steg 4:

➦ Gå sedan till ditt nya ark och välj de unika namnen.

➦ Press OK

Se en nedåtpilen visas på cellens högra sida. Genom att klicka här kan du välja vilket namn som helst. Det sparar tid eftersom vi inte behöver skriva namnen varje gång.

Nu skapar vi en ny funktion som heter LastItemLookup med Excel VBA.

Steg 5:

➦ R högerklicka på musen på arkets namn.

➦ Välj Visa kod från kontextmeny .

A VBA öppnas.

Steg 6:

➦ Skriv in koderna nedan:

 Option Explicit Sub vlookup_last() End Sub Function LastItemLookup(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer) Dim x As Long For x = LookupRange.Columns(1).Cells.Count To 1 Step -1 If Lookupvalue = LookupRange.Cells(x, 1) Then LastItemLookup = LookupRange.Cells(x, ColumnNumber) Exit Function End If Next x End Function 

Steg 7:

➦ Tryck sedan på uppspelningsknappen för att köra koderna. A dialogruta som heter Makroer kommer att visas.

➦ Klicka Kör .

Vår nya funktion är klar nu.

Steg 8:

➦ Återgå nu till arbetsbladet.

➦ Aktivera Cell F5

➦ Skriv formeln nedan med den nya funktionen.

=LastItemLookup(E5,B5:C13,2)

➦ Press Gå in på för att få fram det senaste resultatet för Ron .

När du nu väljer en försäljares namn får du hans motsvarande värde för sista förekomst.

Slutsats

Jag hoppas att alla de metoder som beskrivs ovan är tillräckligt bra för att vlookup det sista värdet i en kolumn. Ställ gärna frågor i kommentarsfältet och ge mig feedback.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.