• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

overbodige kolommen vermijden met vert.zoeken

Status
Niet open voor verdere reacties.

VRstefan

Gebruiker
Lid geworden
2 okt 2014
Berichten
62
Allen,

Ik heb een excelblad met 7500 :( vert.zoeken formules (ik weet dat VBA gemakkelijker is maar dit bestand moet ook bewerkbaar (herkenbaar) zijn door collega's die geen VBA kennen)

Ik wil een waarde opvragen die 60-70 kolommen verder ligt dan de waarde die moet gezocht worden. Gezien het 1000-den formules zijn verwacht ik dat dit 'langer' duurt dan een waarde die er vlak naast ligt.
Mijn idee is om vlak naast de zoekwaarde een kolom te plaatsen met de rijwaarde en die waarde dan als rijwaarde te gebruiken in een verwijzing. In VBA bestaat de verwijzing ...=CELLS(rij, kolom) maar vind geen overeenkomstige functie om rechtstreeks in een cel te plaatsen. Heb al geprobeerd met CEL(...) en ADRES(...) maar ik raak er niet.

Ik zou dan iets gebruiken als =CEL("inhoud"; ADRES (kolom, vert.zoeken (....))).

Dank voor hulp
 
Laatst bewerkt:
Je hebt de formules RIJ en KOLOM, maar denk niet dat het goed gaat functioneren in een VERT.ZOEKEN formule.

Heb je al überhaupt getest of het performance issues oplevert? Zo ja, heb je deze vergeleken met bijvoorbeeld een INDEX en VERGELIJK formule?
Post anders een voorbeeld bestandje waar op afgevuurd kan worden...
 
Ging net de gewone vert.zoeken formules ingeven. Als dit geen echte vertraging met zich meebrengt is er geen probleem.

Toch is een eventuele directe celverwijzing nog altijd welkom.
 
dat doe je toch met index & match ?

PHP:
=index(BM1:BM1000,match(A1;E1:E1000;0);1)
 
Index() en vergelijken() (EN: index() en Match()) zijn een goede vervangers voor de vert zoeken formule en om het bereik te verkleinen.
Ik denk dat de impact van 7000 formules meevalt op de performance, maar wel goed om bij stil te staan.

Ik heb om het duidelijk uit te leggen een voorbeeld gemaakt.
daarin zie je de "klassieke" vert.zoeken formule 1 op 1 vertaald naar de index en vergelijken, dat levert geen winst op maar dient om de formule opbouw te helpen snappen

daarna zie je hoe je in de indexformule kan werken met alleen de kolom waar het resultaat in staat (jou kolom 70 zeg maar)
daarnaast als kers op de taart nog een voorbeeld hoe je met index en vergelijken ook in een kolom kan zoeken die voor je zoekkolom ligt (bij vert.zoeken moet je eerste kolom altijd je zoekkolom zijn)
 

Bijlagen

  • vb VRstefan index-vergelijken.xlsx
    10 KB · Weergaven: 34
Ga dit onmiddellijk proberen.
Bedankt voor beiden voor de hulp.

Van zodra dit werkt zet ik de vraag stop

Werkt prima! Alleen de optie van exacte overeenkomst genomen anders afwijkende waarden.
Nu nog via VBA die 7000 formules laten invullen.

Grote verbetering. Bedankt
 
Laatst bewerkt:
Nu nog via VBA die 7000 formules laten invullen.

Dan kun je beter meteen in VBA de gewenste gegeven opzoeken. Formules in het werkblad zijn dan overbodig.
 
Was dit of manueel 7268 formules intikken :) Doortrekken kon niet wegens lege gebieden ertussen.
Voor transparantie voor de collega te vergroten vermijd ik zoveel mogelijk VBA
 
Voor transparantie voor de collega te vergroten vermijd ik zoveel mogelijk VBA

Dan blijk je zelf niet veel van VBA te begrijpen.

Uitgaande van het bestand van RoelJongman;
Als de te zoeken waarden in cel A1:A7000 staan:

Code:
Sub M_snb()
    sp = Cells(1).CurrentRegion
    sn = Cells(30, 1).CurrentRegion.Resize(, 2)
    
    For j = 1 To UBound(sn)
       For jj = 1 To UBound(sp)
          If sn(j, 1) = sp(jj, 1) Then sn(j, 2) = sp(jj, 8)
       Next
    Next
    Cells(30, 1).CurrentRegion.Resize(, 2) = sn
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan