Hoe om die laaste voorkoms van 'n item in 'n lys te vind met behulp van 'n Excel-formule

Hoe om die laaste voorkoms van 'n item in 'n lys te vind met behulp van 'n Excel-formule

Opsomming: in hierdie tutoriaal sal jy leer hoe om 'n Excel-formule te gebruik om die laaste voorkoms van 'n item in 'n lys te vind.

Ek het onlangs aan 'n vergaderingsagenda gewerk.

Ek het 'n lys in Excel wat 'n lys van mense het en die datums waarop hulle "vergaderingvoorsitters" was.

Ek moet ook weet wanneer 'n persoon laas "vergaderingvoorsitter" was as gevolg van duplisering in die lys (wat beteken 'n persoon was al verskeie kere voorsitter van die vergadering).

Dit is omdat ek moet seker maak dat die mees onlangse voorsitter nie heraangestel word nie.

Ek het dus besluit om 'n bietjie Excel-funksie-magie te gebruik om die werk te doen.

Hieronder is die eindresultaat, ek kan 'n naam uit die aftreklys kies en dit gee my die datum van die laaste voorkoms van daardie naam in die lys.

Vind die laaste voorkoms van 'n item in 'n Excel-formule - demo

As jy 'n goeie begrip van Excel-funksies het, weet jy dat daar geen Excel-funksie is wat dit kan doen nie.Hier laat ons wonderwerke gebeur.

In hierdie tutoriaal sal ek jou drie maniere wys om dit te doen.

Vind die laaste voorkoms - deur die MAX-funksie te gebruik

Hier is die Excel-formule wat die laaste waarde in die lys sal terugstuur:

=INDEX($B$2:$B$14,SUMPRODUCT(MAX(行($A$2:$A$14)*($D$3=$A$2:$A$14))-1))

Hier is hoe hierdie formule werk:

  • Die MAX-funksie word gebruik om die reëlnommer van die laaste ooreenstemmende naam te vind.Byvoorbeeld, as die naam Glen is, sal dit 11 gee omdat dit op reël 11 is.Aangesien ons lys op die tweede ry begin, word 1 afgetrek.Daarom is die laaste voorkoms van Glen 10 in ons lys.
  • SUMPRODUCT word gebruik om seker te maak jy hoef nie Control + Shift + Enter te gebruik nie, want SUMPRODUCT kan skikkingsformules hanteer.
  • Die INDEX-funksie word nou gebruik om die datum van die laaste ooreenstemmende naam te vind.
Verwante vrae  Maak reg - dit het nie gewerk nie.Maak seker dat jou Bluetooth-toestel steeds opspoorbaar is en probeer weer

Vind die laaste voorkoms - deur die OPSOEK-funksie te gebruik

Hier is nog 'n formule wat dieselfde werk doen:

=LOOKUP(2,1/($A$2:$A$14=$D$3),$B$2:$B$14)

Soek Laaste Voorkoms in Lys - Soek Formule

Hier is hoe hierdie formule werk:

  • Opsoekwaarde is 2 (jy sal sien hoekom .. hou aan lees)
  • Die soekreeks is 1/($A$2:$A$14=$D$3) - dit gee 1 terug wanneer dit 'n ooreenstemmende naam vind, en andersins 'n fout.So jy eindig met 'n skikking.例如,查找值為 Glen,數組將為 {#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/ 0!;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!}。
  • Die derde parameter ([resultaat_vektor]) is die reeks waarin dit die resultaat gee, in hierdie geval die datum.

Die rede waarom hierdie formule werk, is dat die OPSOEK-funksie 'n benaderde pastegniek gebruik.Dit beteken dat as dit 'n presiese passing kan vind, dit sal terugkeer, maar as dit nie kan nie, sal dit die hele skikking skandeer tot die einde en die volgende grootste waarde terugstuur wat minder is as die opsoekwaarde.

In hierdie geval is die opsoekwaarde 2, en in ons skikking kry ons net 1 of 'n fout.Dit skandeer dus die hele skikking en gee die posisie van die laaste 1 terug - wat die laaste ooreenstemmende waarde vir die naam is.

Soek Laaste Voorkoms - Gebruik Gepasmaakte Funksie (VBA)

Kom ek wys jou ook 'n ander manier.

Ons kan pasgemaakte funksies skep (ook bekend as gebruiker-gedefinieerde funksies) met behulp van VBA.

Die voordeel van die skep van persoonlike funksies is die gemak van gebruik.Jy hoef nie elke keer bekommerd te wees oor die skep van komplekse formules nie, want die meeste van die werk gebeur in die VBA-agterkant.

Ek het 'n eenvoudige formule geskep (soos die VLOOKUP formule).

Om 'n pasgemaakte funksie te skep, benodig jy VBA-kode in die VB-redigeerder.Ek sal vir jou die kode en die stappe gee om dit later in die VB-redigeerder te kry, maar laat ek jou eers wys hoe dit werk:

Verwante vrae  Outlook Volledige rugsteun: Posuitvoer as PST-lêer

Hier is die formule wat jou die resultaat sal gee:

=LastItem Lookup($D$3,$A$2:$B$14,2)

Vind Laaste Voorkoms in Lys - Pasgemaakte Funksie Demo

Die formule neem drie parameters:

  • Vind die waarde (dit sal die naam in sel D3 wees)
  • Vind die reeks (dit sal die reeks met naam en datum wees – A2:B14)
  • kolomnommer (dit is die kolom waarvoor ons die resultaat wil hê)

Nadat u die formule geskep het en die kode in die VB-redigeerder geplaas het, kan u dit soos enige ander gewone Excel-werkbladfunksie gebruik.

Hier is die kode vir die formule:

Funksie LastItemLookup(Lookupvalue As String, LookupRange As Range, ColumnNumber As Heelgetal) Dim i So Long For i = LookupRange.Columns(1).Cells.Count To 1 Step -1 If Lookupvalue = LookupRange.Cells(i, 1) Then LastItemLookup = LookupRange.Cells(i, ColumnNumber) Verlaat Funksie Einde Indien Volgende i Eindig Funksie

Hier is die stappe om hierdie kode in die VB-redigeerder te plaas:

  1. Gaan na die ontwikkelaaroortjie.Vind die laaste passing van 'n item in 'n lys
  2. Klik op Visual Basic Options.Dit sal die VB-redigeerder in die agterkant oopmaak.Vind die laaste voorkoms van 'n item in 'n lys - Visual Basic
  3. Regskliek in die Project Explorer-venster van die VB-redigeerder op enige voorwerp in die werkboek waar jy kode wil invoeg.As jy nie Project Explorer sien nie, gaan na die View-oortjie en klik Project Explorer.
  4. Gaan na Insert en klik op Modules.Dit sal 'n module-voorwerp vir jou werkboek invoeg.Voeg module in om laaste ooreenstemmende waarde te vind
  5. Kopieer en plak die kode in die modulevenster.
Verwante vrae  Hoe stop ek om Google Foto's te sinkroniseer?

Nou sal die formule in alle velle van die werkboek beskikbaar wees.

Let daarop dat jy die werkboek in .XLSM-formaat sal moet stoor aangesien dit makro's bevat.Ook, as jy wil hê dat hierdie formule beskikbaar moet wees in alle werkboeke wat jy gebruik, kan jy dit in jou persoonlike makro-werkboek stoor of 'n byvoeging daaruit skep.

o hallo 👋Aangename kennis.

Teken in op ons nuusbrief, stuur baie gereeldpuik tegnologiena jou pos.

Post Kommentaar