Innehållsförteckning
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.xlsxAnvä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.