Afgelopen week ontving ik de volgende vraag op site:
“Ik ben in Excel 2007 op zoek naar een soort als dan formule, maar weet niet hoe ik het voor elkaar moet krijgen. Ik heb in een cel de leeftijd van een kind, nu wil ik als de leeftijd tussen 0 en 1 ligt, dit de waarde 0,25 geven en ligt de leeftijd tussen 1 en 2 dan de waarde 0,2 etc. Hoe krijg ik dit voor elkaar?”
Op basis van deze vraag heb ik het onderstaande voorbeeld in Excel gemaakt.
We willen nu dat Excel in de cellen D4 t/m D9 de waarde uitrekent die hoort bij de gevonden leeftijd. We kunnen dit doen met behulp van de functie ALS (Engels: IF). We moeten de functie ALS dan 2 keer binnen zichzelf aanroepen. We noemen dit ook wel het ‘nesten’ van functies. Voor cel D4 wordt de formule dan:
=ALS(C4<1;$C$12;ALS(C4<2;$C$13;ALS(C4<3;$C$14;$C$15)))
Als we deze functie kopiëren naar de cellen D5 t/m D9 dan krijgen we het onderstaande resultaat:
De functie ALS kent de volgende structuur: ALS(logische test; [waarde-als-waar]; [waarde-als-onwaar]). Met de bovenstaande formule geven we Excel de volgende instructies:
- Kijk of de waarde van cel C4 kleiner dan 1 is. Als dat zo is dan is het resultaat de waarde in cel C12.
- Als C4 niet kleiner is dan 1, kijk dan of deze kleiner is dan 2. Als dat zo is dan is het resultaat de waarde in cel C13.
- Als C4 niet kleiner is dan 2, kijk dan of deze kleiner is dan 3. Als dat zo is dan is het resultaat de waarde in Cel C14. Zo niet neem dan de waarde van cel C15.
Op zich is dit een prima oplossing van het vraagstuk. Echter we kunnen deze functie niet oneindig uitbreiden. We mogen de ALS functie maximaal 7x in zichzelf aanroepen. In dit voorbeeld met 4 leeftijdsgroepen is dat geen probleem, echter zodra we meer dan 9 leeftijdsgroepen hebben kunnen we het vraagstuk niet meer met de ALS functie oplossen. In het volgende artikel zal ik daarom een alternatieve oplossing beschrijven.