VLOOKUP-toiminnon parantaminen

Sisällys

Kuinka pakata laskuvarjo oikein?

Hyöty. Painos 2, tarkistettu.

Oletetaan, että meillä on seuraava tilaustaulukko:

VLOOKUP-toiminnon parantaminen

Meidän on tiedettävä esimerkiksi, mikä oli Ivanovin kolmannen tilauksen määrä tai milloin Petrov toteutti toisen kauppansa. Sisäänrakennettu VLOOKUP-toiminto voi etsiä vain ensimmäisen sukunimen esiintymän taulukosta, eikä se auta meitä. Kysymyksiä kuten "Kuka oli tilausnumeron 10256 johtaja?" jää myös vastaamatta, tk. sisäänrakennettu VLOOKUP ei pysty palauttamaan arvoja haun vasemmalla puolella olevista sarakkeista.

Molemmat ongelmat ratkaistaan ​​yhdellä iskulla – kirjoitetaan oma funktiomme, joka etsii paitsi ensimmäistä, myös yleensä N:nnettä esiintymää. Lisäksi se voi etsiä ja tuottaa tuloksia missä tahansa sarakkeessa. Kutsutaan sitä vaikkapa VLOOKUP2:ksi. 

Avaa Visual Basic Editor painamalla ALT+F11 tai valitsemalla valikosta Palvelu – Makro – Visual Basic Editor (Työkalut — Makro — Visual Basic Editor), aseta uusi moduuli (valikko Insert – moduuli) ja kopioi tämän funktion teksti sinne:

Funktio VLOOKUP2(Taulukko muunnelmana, SearchColumnNum As Long, SearchArt Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Valitse tapauksen tyyppinimi(taulukko) tapaus "alue" For i = 1 To Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N then VHAKU2 = Taulukko.Solut(i, TulossarakkeenNum) Poistu For End If Next i Tapaus "Variant()" For i = 1 UBound(Taulukko) Jos Taulukko(i, SearchColumnNum) = EtsiArvo Sitten iCount = iCount + 1 If iCount = N Sitten VHAKU2 = Taulukko(i, Tuloksen sarakkeenNum) Poistu loppuun, jos seuraavaksi i End Valitse lopetustoiminto  

Sulje Visual Basic Editor ja palaa Exceliin.

Nyt läpi Insert – toiminto (Lisää — toiminto) luokkaan Käyttäjän määrittelemä (Käyttäjän määrittelemä) voit löytää VLOOKUP2-toiminnon ja käyttää sitä. Funktioiden syntaksi on seuraava:

=VHAKU2(taulukko; sarakkeen_määrä, josta_etsimme; haun_arvo; N; sarakkeen_määrä_arvoon_arvoon)

Vakiotoiminnon rajoitukset eivät nyt ole meille esteenä:

VLOOKUP-toiminnon parantaminen

PS Erityinen kiitos The_Pristille toiminnon parantamisesta, jotta se voi etsiä suljetuista kirjoista.

  • Tietojen etsiminen ja korvaaminen taulukosta toiseen VLOOKUP-toiminnolla
  • "Left VLOOKUP" käyttämällä INDEX- ja MATCH-toimintoja

 

Jätä vastaus