• 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.

Index met meerdere zoekopties (VBA)

Status
Niet open voor verdere reacties.

nvissers

Gebruiker
Lid geworden
1 apr 2009
Berichten
8
Ik wil een formule maken (liefst in vba) om uit een zoektabel met meerdere zoekopties een prijs in een gegevenstabel neer te zetten. Kan iemand mij helpen?

Hierbij een voorbeeld. Het gaat in werkenlijkheid om een veel groter bestand:

zoektabel
klantnummer product afhaaladres prijs
251 x 145 750
267 y 147 800

gegevenstabel
klantnummer product afhaaladres prijs?
251 x 145 ?
 

Bijlagen

Kijk eens in de zoekfunctie van dit forum of bij VBA-help naar de functie Find en Findnext. Daar ga je zeker al een eind mee vooruit geraken.

Mvg

Rudi
 
Deze formule in D10 geeft je de prijs.

Code:
=SOMPRODUCT(($A$5:$A$6=A10)*($B$5:$B$6=B10)*($C$5:$C$6=C10)*($D$5:$D$6))

Op die manier heb je geen VBA nodig.
 
"Liefst" is geen uiting van verplichting :)
 
In kom een heel eind, maar loop toch vast. In dit vooorbeeld is het afhaaladres is nog geen keuzemogelijkheid. De optie AND heb ik geprobeerd, maar ik kom er niet uit.

Sub Test()
Selection.FormulaArray = _
"=INDEX(R[-5]C:R[-4]C,MATCH(RC[-3],IF(R[-5]C[-2]:R[-4]C[-2]=RC[-2],R[-5]C[-3]:R[-4]C[-3]),0))"
End Sub
 
Alternatief:

Code:
=DBLEZEN($A$4:$D$6;$D$4;$A$9:$C$10)
Code:
=DGET($A$4:$D$6;$D$4;$A$9:$C$10)

DBLEZEN geeft een foutmelding indien de opgevraagde records niet uniek zijn.

Wigi
 
Laatst bewerkt:
In VBA:

Code:
Range("D10").Formula = "=DGET(R4C1:R6C4,R4C4,R9C1:R10C3)"

of (afhankelijk van taalinstellingen - ik heb alles in het Engels staan):

Code:
Range("D10").FormulaLocal = "=DGET(R4C1:R6C4;R4C4;R9C1:R10C3)"

Wigi
 
Na veel gepuzzel ben ik tot de volgende formule gekomen:

=INDEX($D$5:$D$7;VERGELIJKEN(A12;ALS($B$5:$B7&C5:C7=B12&C12;$A$5:$A$7;0);0))

Deze werkt uitstekend.
 
Na veel gepuzzel ben ik tot de volgende formule gekomen:

=INDEX($D$5:$D$7;VERGELIJKEN(A12;ALS($B$5:$B7&C5:C7=B12&C12;$A$5:$A$7;0);0))

Deze werkt uitstekend.

Bedankt voor de terugkoppeling.:thumb:

Gaarne de vraag op opgelost zetten (rechts onderaan de pagina).
Bvd.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan