|
Excel, VERT.ZOEKEN() impliciete tabelmatrix
Situatie
De functie VERT.ZOEKEN() wordt vaak gebruikt om een corresponderende waarde uit een tabelmatrix bij een opgegeven celwaarde te zoeken. Laatst liep ik tegen de volgende situatie aan:
Een getal in cel A1 moet worden vermenigvuldigd met "6" als de waarde in cel B1 de waarde "T" bevat.
Een getal in cel A1 moet worden vermenigvuldigd met "4" als de waarde in cel B1 de waarde "W" bevat.
Een getal in cel A1 moet worden vermenigvuldigd met "3" als de waarde in cel B1 de waarde "V" bevat.
Het resultaat van de berekening (maw) de formule moet in cel C1 worden opgenomen.
Het is al duidelijk dat het hier om het zoeken in een tabelmatrix gaat
.
Oplossingsalternatieven:
Oplossing ALS()
Er zijn, zoals gewoonlijk binnen Excel, meerdere oplossingsalternatieven voorhanden. Eén van de oplossingsalternatieven is het gebruikmaken van =ALS() formule. De formule in C1 ziet er dan als volgt uit:
=A1*ALS(B1="T";6;ALS(B1="W";4;ALS(B1="V";3;0)))
Deze oplossing is in dit geval nog werkbaar, maar wordt als snel onoverzichtelijk zodat er meer "ALS"-situatie bijkomen.
Oplossing True/False
Een andere oplossing kan worden gevonden in het gebruik maken van het feit dat TRUE de waarde 1 heeft en FALSE correspondeert met de waarde 0. In dit geval dient de volgende formule in cel C1 te worden opgenomen:
=A1*(((B1="T")*6)+((B1="W")*4) + ((B1="V")*3))
In deze oplossing is de expressie (B1="T") "0" als cel B1 een andere waarde dan "T" bevat en "1" als de cel B1 een "T" bevat. Aangezien de waarden elkaar uitsluiten is B1 óf "T", óf "W" óf "V" en zal de uitkomst van de optelling altijd 3, 4 of 6 (of 0 als B1 geen "T", "W" of "V" bevat) zijn. Ook een krachtige oplossing voor het betreffende probleem, maar wat ik in dit w-tje wou illustreren is de hiernagenoemde oplossing, waarbij een tabelmatrix "impliciet" in de formule VERT.ZOEKEN is opgenomen.
Oplossing VERT.ZOEKEN()
Ook kan een oplossing worden gevonden met gebruikmaking van de functie VERT.ZOEKEN(), waarbij de gewenste vermenigvuldigingsfactor bij de corresponderende waarde in een tabelmatrix wordt bepaald. Het is mogelijk om in dit geval de mogelijke situaties op het werkblad te zetten en in dit bereik met VERT.ZOEKEN() de factor te bepalen. Maar eigenlijk wil een dergelijke tabelmatrix helemaal niet als bereik op het werkblad opnemen.
Excel biedt de mogelijkheid om een tabelmatrix impliciet in de formule VERT.ZOEKEN() op te nemen ! De in de resultaatcel C1 te plaatsen formule komt er dan als volgt uit te zien:
=A1*VERT.ZOEKEN(B1;{"T";6\"W";4\"V";3};2;ONWAAR)
De betreffende formule kan natuurlijk nog worden "opgeleukt" met controles op het niet voorkomen van een zoeksleutel in de opgegeven tabelmatrix. Hier beperken we ons echter tot de kern.
Probeer het eens uit, en leer, steeds meer !
Naar boven . . .
|