
Generieke formule
=VLOOKUP(A1,CHOOSE((1,2),range2,range1),2,0)
Samenvatting
Als u VERT.ZOEKEN wilt gebruiken om naar links te zoeken, kunt u de functie CHOOSE gebruiken om de opzoektabel opnieuw te ordenen. In het getoonde voorbeeld is de formule in F5:
=VLOOKUP(E5,CHOOSE((1,2),score,rating),2,0)
waarbij score (C5: C9) en beoordeling (B5: B9) bereiken worden genoemd.
Uitleg
Een van de belangrijkste beperkingen van de functie VERT.ZOEKEN is dat deze alleen waarden aan de rechterkant kan opzoeken. Met andere woorden, de kolom die opzoekwaarden bevat, moet links van de waarden staan die u met VERT.ZOEKEN wilt ophalen. Er is geen manier om dit gedrag op te heffen, aangezien het in de functie is ingebed. Als gevolg hiervan is het bij normale configuratie niet mogelijk om VERT.ZOEKEN te gebruiken om een beoordeling in kolom B op te zoeken op basis van een score in kolom C.
Een oplossing is om de opzoektabel zelf te herstructureren en de opzoekkolom links van de opzoekwaarde (n) te verplaatsen. Dat is de benadering die in dit voorbeeld wordt gevolgd, waarbij de functie CHOOSE reverse rating en score als volgt wordt gebruikt:
CHOOSE((1,2),score,rating)
Normaal gesproken wordt CHOOSE gebruikt met een enkel indexnummer als het eerste argument, en de overige argumenten zijn de waarden waaruit je kunt kiezen. Hier geven we echter een matrixconstante voor indexnummer met twee getallen: (1,2). In wezen vragen we om te kiezen voor zowel de eerste als de tweede waarde.
De waarden worden in het voorbeeld gegeven als de twee benoemde bereiken: score en beoordeling. Merk echter op dat we deze bereiken in omgekeerde volgorde aanbieden. De CHOOSE-functie selecteert beide bereiken in de opgegeven volgorde en retourneert het resultaat als een enkele array, zoals deze:
(5,"Excellent";4,"Good";3,"Average";2,"Poor";1,"Terrible")
CHOOSE retourneert deze array rechtstreeks naar VERT.ZOEKEN als het argument van de tabelmatrix. Met andere woorden, CHOOSE levert een opzoektabel zoals deze aan VERT.ZOEKEN:
Met behulp van de opzoekwaarde in E5, zoekt VERT.ZOEKEN een overeenkomst binnen de nieuw gemaakte tabel en retourneert een resultaat uit de tweede kolom.
Herordenen met de matrixconstante
In het getoonde voorbeeld herordenen we de opzoektabel door "rating" en "score" binnen de gekozen functie om te draaien. We kunnen echter in plaats daarvan de arrayconstante gebruiken om als volgt opnieuw te ordenen:
CHOOSE((2,1),rating,score)
Het resultaat is precies hetzelfde.
Met INDEX en MATCH
Hoewel het bovenstaande voorbeeld prima werkt, is het niet ideaal. Om te beginnen begrijpen de meeste gemiddelde gebruikers niet hoe de formule werkt. Een meer natuurlijke oplossing is INDEX en MATCH. Hier is de equivalente formule:
=INDEX(rating,MATCH(E5,score,0))
Dit is in feite een goed voorbeeld van hoe INDEX en MATCH flexibeler zijn dan VERT.ZOEKEN.