Forbedring af VLOOKUP-funktionen

Indhold

Hvordan pakker man en faldskærm korrekt?

Fordel. Udgave 2, revideret.

Lad os sige, at vi har følgende tabel over ordrer:

Forbedring af VLOOKUP-funktionen

Vi skal for eksempel vide, hvad beløbet for Ivanovs tredje ordre var, eller hvornår Petrov gennemførte sin anden aftale. Den indbyggede VLOOKUP-funktion kan kun søge efter den første forekomst af efternavnet i tabellen og hjælper os ikke. Spørgsmål som "Hvem var leder af ordrenummer 10256?" vil også forblive ubesvaret, tk. den indbyggede VLOOKUP er ikke i stand til at returnere værdier fra kolonner til venstre for søgningen.

Begge disse problemer er løst i ét hug – lad os skrive vores egen funktion, der ikke kun leder efter den første, men i det generelle tilfælde efter den N. forekomst. Desuden vil den være i stand til at søge og producere resultater i alle kolonner. Lad os kalde det for eksempel VLOOKUP2. 

Åbn Visual Basic Editor ved at trykke ALT+F11 eller ved at vælge fra menuen Service – Makro – Visual Basic Editor (Værktøjer — Makro — Visual Basic Editor), indsæt et nyt modul (menu Indsæt – Modul) og kopier teksten til denne funktion derhen:

Funktion VLOOKUP2(Tabel som variant, Søgkolonnenummer så lang, søgeværdi som variant, _ N så lang, resultatkolonnenummer så lang) Dim i så lang, iTæl så lang Vælg sagstypenavn(tabel) Sag "Range" For i = 1 til tabel.rækker .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 Til UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End Vælg End-funktion  

Luk Visual Basic Editor og vend tilbage til Excel.

Nu igennem Indsæt – Funktion (Indsæt — Funktion) i kategori Brugerdefineret (Brugerdefineret) du kan finde vores VLOOKUP2-funktion og bruge den. Funktionens syntaks er som følger:

=VOPSLAG2(tabel; antal_kolonne_hvor_vi ser efter; opslagsværdi; N; antal_kolonne_fra_til_hent_værdi)

Nu er begrænsningerne af standardfunktionen ikke en hindring for os:

Forbedring af VLOOKUP-funktionen

PS Særlig tak til The_Prist for at forbedre funktionen, så den kan søge i lukkede bøger.

  • Finde og erstatte data fra en tabel til en anden ved hjælp af VLOOKUP-funktionen
  • "Left VLOOKUP" ved hjælp af INDEX- og MATCH-funktionerne

 

Giv en kommentar