De booleaanse expressie
Ik moet je eerst even bestoken met een moeilijk woord: de booleaanse expressie. Dat is belangrijk want het zit in het hart van de logische functies. Zo’n booleaanse expressie is een uitdrukking over de juistheid van een bepaalde uitspraak. Het resultaat is dus WAAR of ONWAAR. Soms is het leven simpel, het is het een of het ander. Zwart of wit. Je snapt wat ik bedoel.
In Excel kan je heel gemakkelijk zulke uitspraken ingeven. Bekijk het voorbeeld hieronder. In B3 doe je de uitspraak dat de inhoud van B1 gelijk is aan de inhoud van B2. Vermits dat niet het geval is krijgt deze cel de waarde ONWAAR.
Je kan niet alleen testen of dingen gelijk zijn. Er zijn zo meer expressies mogelijk:
- =B2=B3: de inhoud van B2 is gelijk aan de inhoud van B3
- =B2>B3: de inhoud van B2 is groter dan de inhoud van B3
- =B2>=B3: de inhoud van B2 is groter dan of gelijk aan de inhoud van B3
- =B2<B3: de inhoud van B2 is kleiner dan de inhoud van B3
- =B2<=B3: de inhoud van B2 is kleiner dan of gelijk aan de inhoud van B3
- =B2<>B3: de inhoud van B2 is verschillend van de inhoud van B3
Telkens is het resultaat WAAR of ONWAAR.
In de logische functies (ALS) hieronder hebben we deze WAAR/ONWAAR-expressies nodig. Daarom dat ik ze eerst vermeldde.
De functie ALS
Dit is de meest gebruikte logische functie. De ALS-functie geeft een waarde weer wanneer aan een voorwaarde wordt voldaan, en een andere waarde wanneer aan deze voorwaarde niet wordt voldaan.
Je koppelt dus de logische expressie van hierboven aan een ander resultaat. Je toont niet gewoon WAAR of ONWAAR, maar vervangt WAAR en ONWAAR door andere waarden.
Een voorbeeld kan dat verduidelijken: stel dat ik als webwinkel een lijst heb met per product informatie over mijn voorraad en over het aantal nog te leveren producten. Als ik meer producten moet leveren dan ik in voorraad heb, dan ben ik daar best van op de hoogte…
Als de waarde in B groter is dan C, dan moet er in D “OK” staan, in alle andere gevallen “NIET OK”.
We gebruiken hiervoor de functie ALS. Klik in cel D1 en begin te typen =ALS(B2>C2;
Je ziet nu in het voorbeeld hierboven hoe de functie opgebouwd moet worden. Ze bestaat uit 3 onderdelen (argumenten, in Excel-taal) :
- De test waarop de celwaarde wordt beoordeeld. Dat is zo’n booleaanse expressie die gewoon als uitkomst WAAR of ONWAAR geeft.
- De celwaarde wanneer de test is geslaagd en dus resultaat WAAR heeft. Omdat ik hier tekst wil ingeven ipv een getal, zet ik deze tussen ” “.
- De celwaarde wanneer deze test niet is geslaagd en dus als resultaat ONWAAR heeft. Omdat ik hier tekst wil ingeven, zet ik deze tussen ” “.
Voeg zo de 3 argumenten van de functie in, telkens gescheiden met een puntkomma.
Nog een voorbeeld:
Als een verkoper een bepaalde omzet haalt, krijgt hij een extra bonus op z’n loon. Bekijk hieronder het werkblad.
Als een verkoper voor meer dan €25.000 verkoopt, dan is de bonus 10% van de verkoop, anders is de bonus 0.
Dus: als meer dan 25000; dan 10% * verkoop; anders 0.
Tijd voor de oplossing.
De geneste ALS
Wat als je meer dan 2 mogelijke gevallen (uitkomsten) hebt? Wat als gewoon WAAR of ONWAAR niet volstaat? Moet je de ALS-functie dan definitief afschrijven?
Niet helemaal, wat er bestaat een techniek om meerdere ALS-functies in elkaar te verwerken om meer dan twee uitkomsten mogelijk te maken.
Denk bijvoorbeeld aan de logica bij een rood licht. Je hebt nu 3 mogelijke uitkomsten: je moet stoppen (rood), je moet stoppen als je veilig kan (oranje) of je mag doorrijden (groen).
ALS het licht rood is, dan moet je stoppen.
ALS het licht niet rood is zijn er nog 2 mogelijkheden: ALS het oranje is, dan moet je je best doen om te stoppen; ALS het niet oranje is, mag je doorrijden (het is dan groen, want niét rood en niét oranje),
Je hebt dus twee ALS-functies nodig om 3 uitkomsten af te dekken.
Ik heb eens geprobeerd om dat in Excel weer te geven. Bekijk onderstaand werkblad.
Bedoeling is nu dat we in B2 een formule ingeven die als uitkomst een van de drie mogelijke acties heeft. Die acties vind je in D2:D4. In B1 staat nu “rood”, maar de waarde daar is soms ook “oranje” of “groen”.
Laat ons gewoon beginnen met 1 ALS-functie. Als B1 overeenkomt met rood, dan is de uitkomst dat je moet stoppen. Tot hiertoe is er niks vreemds aan de hand.
Kunnen we nu de waarde als ONWAAR gewoon ingeven? Nee, want er zijn nog twee opties, namelijk voor groen en oranje. Dat lossen we op door de plaats waar de waarde als ONWAAR komt een nieuwe ALS-functie in te geven, voor de kleuren groen en oranje.
Op het einde zijn twee haakjes nodig. Je hebt immers twee ALS-functies die je moet afsluiten.
Zo kan je dus meerdere ALS-functies in elkaar verweven.
ALS(EN) en ALS(OF)
Nog een speciale variant: wat als je niet gewoon 1 booleaanse expressie wil gebruiken om te checken of iets waar of onwaar is, maar wel twee voorwaarden wil combineren?
Dat kan ook. Je plaatst dan in de ALS-functie op de plaats van de logische test een EN-functie of een OF-functie:
- EN-functie: er zijn meerdere meerdere voorwaarden waaraan tegelijk voldaan moet zijn vooraleer de uitkomst WAAR wordt
- OF-functie: er zijn meerdere voorwaarden waarbij er minstens aan 1 voldaan moet zijn vooraleer de uitkomst WAAR wordt.
De meerdere voorwaarden scheid je telkens met een ;-teken.
Stel dat je alleen een BBQ wil houden als het droog is én warmer dan 20 graden. Dan heb je dus een logische test nodig met 2 voorwaarden. Omdat je streng bent (de voorwaarden moeten allebei gelden) gebruik je de EN. Pas als aan de twee voorwaarden voldaan is ga je BBQ’en.
Ik geef de opbouw van die functie hieronder schematisch weer:
ALS(EN(weer=droog;temperatuur>20);wel BBQ;geen BBQ)
Hieronder doe ik het eens in Excel zelf. Ik start met regen en 21 graden. Als alles goed gaat moet dat dus leiden tot “geen BBQ-weer”. Daarna toon ik nog enkele andere weercombinaties.
Duidelijk? Door nu die EN te veranderen in een OF kan ik de voorwaarden veel minder streng maken. In dat geval moet het droog zijn OF warmer dan 20 graden. De kans dat we gaan BBQ’en is dan veel groter.