OF
OR in Engelstalige Excel
Geeft WAAR zodra minstens één van de opgegeven voorwaarden WAAR is, en alleen ONWAAR als ze allemaal ONWAAR zijn.
Laatst bijgewerkt: 13 oktober 2026
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Boekstuk | Dagboek | Bedrag | Toetsen |
| 2 | 25-0412 | MEM | €1,250.00€ 1.250,00 | WAARWAAR=OF(B2="MEM", C2>=25000)=OF(B2="MEM"; C2>=25000) |
| 3 | 25-0413 | VRK | €18,400.00€ 18.400,00 | |
| 4 | 25-0414 | INK | €6,300.00€ 6.300,00 | |
| 5 | 25-0415 | BNK | €25,000.00€ 25.000,00 | |
| 6 | 25-0416 | MEM | €48,000.00€ 48.000,00 |
Veeg opzij om alle kolommen te zien
Resultaat: WAAR
=OF(B2="MEM",C2>=25000)
=OF(B2="MEM";C2>=25000)
Wat OF doet en wanneer je het gebruikt
Wat het doet: het toetst meerdere voorwaarden en geeft WAAR zodra er minstens één klopt, bijvoorbeeld een boekingsregel die handmatig is of boven een drempel ligt.
Wanneer je de functie gebruikt: als één van meerdere redenen genoeg is, meestal als test binnen ALS. Zet OF binnen EN als een regel beide mengt. Wil je een waarde aan een lange lijst toetsen, dan werken AANTAL.ALS of X.VERGELIJKEN beter dan een lange OF.
Hoe Excel de functie berekent
Excel rekent alle argumenten van links naar rechts uit, ook als er al een WAAR tussen zit. Bij elke aanroep geldt:
- elk argument wordt WAAR of ONWAAR
- uit matrices en bereiken telt elk element mee, behalve lege cellen en tekst, die worden overgeslagen
- is minstens één waarde WAAR, dan geeft OF WAAR; anders ONWAAR
- zit er in een argument een foutwaarde, dan wordt de uitkomst die fout, ook als een ander argument WAAR is
Let op: In formules over hele bereiken (FILTER, SOM over matrices) tel je de voorwaarden bij elkaar op in plaats van OF te gebruiken, want OF geeft één waarde voor het hele bereik.
Denkmodel
Schakelaars die parallel zijn geschakeld: staat er één aan, dan brandt de lamp, en hij blijft alleen uit als alle schakelaars uit staan.
Begrippen op deze pagina: foutwaarde, matrix, argument, bereik, cel
Syntaxis
Officiële documentatie van OFOF(logisch1,[logisch2], ...)
OF(logisch1;[logisch2]; ...)
| Argument | Soort | Betekenis |
|---|---|---|
logisch1 | Verplicht | De eerste voorwaarde, meestal een vergelijking zoals B2>5000. |
logisch2 | Optioneel | Nog meer voorwaarden, tot 255 in totaal. Eén WAAR ertussen is genoeg. |
Geeft terug:WAAR als minstens één voorwaarde WAAR is, anders ONWAAR
Formules gebruiken komma's (,) tussen de argumenten, zoals in de Engelse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel; de Engelse Excel gebruikt komma's (,).
Uitgewerkte voorbeelden
Beginner
Boekingsregels selecteren voor controle: handmatig of groot
Voor de journaalpostcontrole selecteer je elke boekingsregel die handmatig is geboekt (dagboek MEM) of een bedrag van 25,00025.000 of meer heeft. Eén van die twee redenen is genoeg. Je wilt naast de XAF-export een kolom met WAAR of ONWAAR die de te toetsen regels aanwijst.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Boekstuk | Dagboek | Bedrag | Toetsen | |
| 2 | 25-0412 | MEM | €1,250.00€ 1.250,00 | WAARWAAR=OF(B2="MEM", C2>=25000)=OF(B2="MEM"; C2>=25000) | |
| 3 | 25-0413 | VRK | €18,400.00€ 18.400,00 | ||
| 4 | 25-0414 | INK | €6,300.00€ 6.300,00 | ||
| 5 | 25-0415 | BNK | €25,000.00€ 25.000,00 | ||
| 6 | 25-0416 | MEM | €48,000.00€ 48.000,00 | ||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in D2
=OF(B2="MEM",C2>=25000)
=OF(B2="MEM";C2>=25000)
Resultaat: WAAR
Stap voor stap
- Excel rekent logisch1 uit: in
B2staatMEM, en "MEM"="MEM" is WAAR. - Toch rekent Excel ook logisch2 uit: in
C2staat 1250, en 1250>=25000 is ONWAAR. - Eén van de twee is WAAR, dus OF geeft WAAR voor boekstuk
25-0412: een handmatige regel, geselecteerd ongeacht het bedrag. - In
D3:VRKis nietMEM, en 18400>=25000 is ONWAAR, dus ONWAAR.D4:INKen 6300 geven ook ONWAAR. D5heeft precies 25000 op eenBNK-regel. De test gebruikt >=, dus 25000>=25000 is WAAR en de regel wordt geselecteerd.D6heeft twee redenen (MEMen 48000) en geeft toch maar één WAAR.
Let op: Staat in je selectiecriterium 'boven 25,00025.000', dan moet de test C2>25000 zijn. Met >= wordt ook de regel van precies 25,00025.000 geselecteerd, en dat verandert je steekproef. Leg de grens vast in je werkpapier.
Meer over dit voorbeeld: waarom het werkt
Waarom het werkt
OF heeft genoeg aan één WAAR tussen de argumenten, dus elk criterium is een losse reden om geselecteerd te worden. De functie telt niet hoeveel criteria kloppen; daarom staat bij 25-0416, met twee redenen, dezelfde WAAR als bij 25-0412, met één.
Halfgevorderd
Debiteuren bevestigen boven een drempel of bij een geschil
Je stuurt een saldobevestiging aan elke debiteur waarvan het saldo de drempel in G1 haalt, of waarvan het saldo in geschil is (WAAR in kolom C), en je slaat de andere over. De formule staat naast elke debiteur in de ouderdomsanalyse van de cliënt. Eén saldo is via de export als tekst binnengekomen, en je wilt weten wat dat met de uitkomst doet.
| Rij | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Debiteur | Saldo | In geschil | Actie | Bevestigen vanaf | 2500025000 | ||
| 2 | D1001 | €18,200.00€ 18.200,00 | ONWAAR | OverslaanOverslaan=ALS(OF(B2>=$G$1, C2), "Bevestigen", "Overslaan")=ALS(OF(B2>=$G$1; C2); "Bevestigen"; "Overslaan") | ||||
| 3 | D1002 | €31,500.00€ 31.500,00 | ONWAAR | |||||
| 4 | D1003 | €4,800.00€ 4.800,00 | WAAR | |||||
| 5 | D1004 | 9600 | ONWAAR | |||||
| 6 | D1005 | €25,000.00€ 25.000,00 | ONWAAR | |||||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in D2
=ALS(OF(B2>=$G$1,C2), "Bevestigen", "Overslaan")
=ALS(OF(B2>=$G$1;C2); "Bevestigen"; "Overslaan")
Resultaat: Overslaan
Stap voor stap
- Excel rekent eerst de OF uit. logisch1 is B2>=$G$1: 18200>=25000, en dat is ONWAAR.
- logisch2 is
C2, en daarin staat ONWAAR: het saldo is niet in geschil. Allebei ONWAAR, dus OF geeft ONWAAR. - ALS krijgt ONWAAR en geeft waarde_als_onwaar terug: Overslaan, voor
D1001. D3: 31500>=25000 is WAAR, dus Bevestigen.D4: 4800>=25000 is ONWAAR, maarC4is WAAR, dus ook Bevestigen. Zonder het tweede argument was het saldo in geschil niet bevestigd.D5vergelijkt de tekst 9600 met het getal 25000. Excel zet hier niets om: in een vergelijking is tekst altijd groter dan een getal, dus "9600">=25000 is WAAR en een klein saldo wordt geselecteerd voor bevestiging.D6heeft precies 25000, en >= telt dat mee, dus Bevestigen. ZetG1op 18000 en ookD2wordt Bevestigen, want 18200>=18000 is WAAR.
Let op: Het saldo dat als tekst in B5 staat, levert een verkeerd antwoord op zonder enige foutmelding. Sorteer of filter de kolom met saldi: tekstwaarden komen dan apart van de getallen te staan en vallen op.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
OF voegt twee losse redenen voor een bevestiging samen tot één test, zodat ALS maar tussen twee uitkomsten hoeft te kiezen. Door de dollartekens blijft de drempel in elke kopie naar G1 wijzen, zodat je de drempel op één plek wijzigt.
Meer om op te letten
- Is een cel in de kolom geschil leeg, dan slaat OF die als losse verwijzing over. Hier kan dat geen kwaad, want leeg hoort 'niet in geschil' te betekenen, maar moet leeg uitdrukkelijk als ONWAAR tellen, schrijf dan C2=WAAR.
Varianten
=ALS(OF(B2 * 1 >= $G$1,C2), "Bevestigen", "Overslaan")
=ALS(OF(B2 * 1 >= $G$1;C2); "Bevestigen"; "Overslaan")
Door met 1 te vermenigvuldigen wordt de tekst 9600 vóór de vergelijking het getal 9600, dus D1004 wordt overgeslagen. Een snelle noodoplossing zolang de export niet is opgeschoond.
GevorderdExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Boekingsregels van periode 12: handmatig of boven drempel
Voor de journaalpostcontrole wil je een actuele lijst met de boekstukken uit de periode in G1 die handmatig zijn (dagboek G2) of boven het bedrag in G3 liggen. De regel mengt EN (deze periode) met OF (een van beide redenen) en moet in één keer op de hele export werken, dus je schrijft beide als rekensom.
| Rij | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Boekstuk | Dagboek | Bedrag | Periode | Periode | 1212 | ||
| 2 | 25-0701 | MEM | €3,500.00€ 3.500,00 | 1212 | Handmatig dagboek | MEM | ||
| 3 | 25-0702 | VRK | €42,000.00€ 42.000,00 | 1212 | Bedrag boven | 2000020000 | ||
| 4 | 25-0703 | MEM | €61,000.00€ 61.000,00 | 1212 | Toetsen | 25-0701=FILTER(A2:A8, (D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3)))=FILTER(A2:A8; (D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3))) | ||
| 5 | 25-0704 | MEM | €9,000.00€ 9.000,00 | 1111 | 25-0702 | |||
| 6 | 25-0705 | INK | €7,800.00€ 7.800,00 | 1212 | 25-0703 | |||
| 7 | 25-0706 | BNK | €20,000.00€ 20.000,00 | 1212 | ||||
| 8 | 25-0707 | VRK | €55,000.00€ 55.000,00 | 1111 | ||||
| 9 |
Veeg opzij om alle kolommen te zien
Formule in G4
=FILTER(A2:A8,(D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3)))
=FILTER(A2:A8;(D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3)))
Resultaat: 25-0701 / 25-0702 / 25-070325-0701 / 25-0702 / 25-0703
Stap voor stap
- Excel rekent eerst de binnenste tests uit op alle zeven rijen. B2:B8=G2 (
MEM) geeft WAAR, ONWAAR, WAAR, WAAR, ONWAAR, ONWAAR, ONWAAR. C2:C8>G3 (boven 20000) geeft ONWAAR, WAAR, WAAR, ONWAAR, ONWAAR, ONWAAR, WAAR. - De + telt ze rij voor rij op als enen en nullen: 1+0, 0+1, 1+1, 1+0, 0+0, 0+0, 0+1, dus 1, 1, 2, 1, 0, 0, 1. Elke rij boven 0 heeft minstens één reden: dat is OF.
- D2:D8=G1 (periode 12) geeft 1, 1, 1, 0, 1, 1, 0. De * vermenigvuldigt dat met de uitkomst van het OF-deel: 1, 1, 2, 0, 0, 0, 0. Dat is EN: de periodetest kan een rij op 0 zetten, wat de andere twee tests ook zeggen.
- FILTER houdt elke rij over waarvan de waarde in opnemen niet 0 is, dus de 2 bij
25-0703telt net zo goed als een 1. De lijst loopt over vanG4totG6:25-0701,25-0702,25-0703. 25-0706heeft precies 20000, en 20000>20000 is ONWAAR, dus dat boekstuk blijft erbuiten. ZetG3op 5000, dan komen25-0705(7800) en25-0706(20000) erbij en telt de lijst vijf boekstukken.
Let op: Tel je dezelfde regel met SOM, dan krijg je 4 in plaats van 3, omdat 25-0703 aan beide redenen voldoet en 2 meetelt. Er verschijnt geen fout, en je steekproefomvang klopt niet. Vergelijk het OF-deel daarom eerst met 0, zoals in de variant.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
Bij enen en nullen gedraagt optellen zich als OF (de som is groter dan 0 zodra één term 1 is) en vermenigvuldigen als EN (het product is 0 zodra één factor 0 is). De haakjes bepalen wat bij elkaar hoort, net zoals 'en dan ... of ...' dat in de selectieregel doet. Beide operatoren werken per rij, en dat kunnen OF en EN niet.
Meer om op te letten
- Schrijf je OF(B2:B8=G2; C2:C8>G3) in plaats van de +, dan krijg je één WAAR voor de hele lijst. FILTER krijgt dan één waarde voor zeven rijen en geeft #WAARDE! of een verkeerd resultaat, omdat het argument opnemen één WAAR of ONWAAR per rij nodig heeft.
Varianten
=SOM((D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3) > 0))
=SOM((D2:D8=G1) * ((B2:B8=G2) + (C2:C8>G3) > 0))
Telt de te toetsen boekstukken: 3. De > 0 maakt van elke 2 weer één WAAR, zodat geen rij dubbel meetelt.
ExpertExcel 2024 of nieuwer (Dit voorbeeld vereist Excel 2024 of nieuwer)
Afwijkende boekingen markeren aan de hand van een lijst met rekeningen
In de XAF-export markeer je een boekingsregel als minstens één van deze voorwaarden geldt:
- de grootboekrekening staat op een aandachtslijst
- het bedrag ligt boven 100,000100.000
- de regel is geboekt in een periode na 12 (een correctieperiode na het einde van het boekjaar)
De aandachtslijst staat in F2:F4 en verandert af en toe. Je wilt één formule die per regel WAAR of ONWAAR geeft, en als een rekening op de lijst verandert, mag je de formule niet hoeven aan te passen.
| Rij | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Boekstuk | Rekening | Bedrag | Periode | Markering | Aandachtslijst | |
| 2 | 25-0801 | 40004000 | €4,200.00€ 4.200,00 | 1111 | ONWAAR=LET( bewaakt, F2:F4, MAP(B2:B6, C2:C6, D2:D6, LAMBDA(rekening, bedrag, periode, OF(rekening = bewaakt, bedrag > 100000, periode > 12) )) )=LET( bewaakt; F2:F4; MAP(B2:B6; C2:C6; D2:D6; LAMBDA(rekening; bedrag; periode; OF(rekening = bewaakt; bedrag > 100000; periode > 12) )) ) | 18001800 | |
| 3 | 25-0802 | 18001800 | €1,800.00€ 1.800,00 | 1212 | WAAR | 19901990 | |
| 4 | 25-0803 | 80008000 | €125,000.00€ 125.000,00 | 1212 | WAAR | 49904990 | |
| 5 | 25-0804 | 45004500 | €3,000.00€ 3.000,00 | 1313 | WAAR | ||
| 6 | 25-0805 | 16001600 | €98,500.00€ 98.500,00 | 1212 | ONWAAR | ||
| 7 |
Veeg opzij om alle kolommen te zien
Formule in E2
=LET( bewaakt,F2:F4, MAP(B2:B6, C2:C6, D2:D6, LAMBDA(rekening, bedrag, periode, OF(rekening = bewaakt, bedrag > 100000, periode > 12) )) )
=LET( bewaakt;F2:F4; MAP(B2:B6; C2:C6; D2:D6; LAMBDA(rekening; bedrag; periode; OF(rekening = bewaakt; bedrag > 100000; periode > 12) )) )
Resultaat: ONWAAR / WAAR / WAAR / WAAR / ONWAARONWAAR / WAAR / WAAR / WAAR / ONWAAR
Stap voor stap
- LET geeft de aandachtslijst een naam: bewaakt is
F2:F4, met de rekeningen 1800, 1990 en 4990. - MAP loopt tegelijk door
B2:B6,C2:C6enD2:D6en roept de LAMBDA één keer per regel aan. De eerste aanroep krijgt rekening 4000, bedrag 4200 en periode 11. - rekening = bewaakt vergelijkt 4000 met alle drie de rekeningen op de lijst en levert een matrix op: ONWAAR, ONWAAR, ONWAAR. OF neemt die matrix aan als één argument en bekijkt elk element.
- De andere twee tests zijn 4200 > 100000 (ONWAAR) en 11 > 12 (ONWAAR). Onder de vijf waarden zit geen enkele WAAR, dus OF geeft ONWAAR voor
25-0801. 25-0802: 1800 = bewaakt geeft WAAR, ONWAAR, ONWAAR, dus WAAR.25-0803: 125000 > 100000 is WAAR.25-0804: periode 13 > 12 is WAAR.25-0805mist alle drie (rekening 1600, 98500, periode 12), dus ONWAAR.- MAP verzamelt de vijf antwoorden en laat ze overlopen van
E2totE6: ONWAAR, WAAR, WAAR, WAAR, ONWAAR. Typ 1600 over 4990 heen inF4enE6wordt WAAR, zonder dat je de formule aanraakt.
Let op: De omgekeerde fout is EN schrijven waar je OF bedoelt. EN(rekening = bewaakt; ...) eist dat de rekening tegelijk gelijk is aan alle drie de rekeningen op de lijst. Dat kan nooit, dus elke regel krijgt ONWAAR en er wordt niets gemarkeerd.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant
Waarom het werkt
OF bekijkt elk element van een matrixargument, dus rekening = bewaakt maakt van het doorzoeken van een lijst één enkel OF-argument: één overeenkomst maakt de hele test WAAR. MAP geeft elke regel een eigen aanroep, zodat OF, dat altijd één waarde teruggeeft, toch per rij antwoordt.
Gebruik deze opbouw niet bij een volledige XAF-export: een LAMBDA per rij is traag bij honderdduizenden boekingsregels. Het alternatief is ISGETAL(X.VERGELIJKEN(...)) met opgetelde voorwaarden, hieronder: sneller en zonder LAMBDA, maar lastiger te lezen en uit te breiden.
Meer om op te letten
- OF(B2:B6 = bewaakt; ...) zonder MAP vergelijkt een kolom van 5 cellen met een lijst van 3. Op de twee posities waar de lijst ophoudt, ontstaat #N/B, en dan geeft OF voor alles #N/B.
- Een lege cel op de aandachtslijst is gelijk aan een lege rekeningcel, dus een regel zonder rekening wordt gemarkeerd. Meestal is dat precies wat je wilt, maar het is goed om te weten waar het vandaan komt.
Varianten
=ISGETAL(X.VERGELIJKEN(B2:B6,F2:F4)) + (C2:C6 > 100000) + (D2:D6 > 12) > 0
=ISGETAL(X.VERGELIJKEN(B2:B6;F2:F4)) + (C2:C6 > 100000) + (D2:D6 > 12) > 0
Dezelfde regel zonder LAMBDA: X.VERGELIJKEN zoekt elke rekening op in de lijst of geeft #N/B, ISGETAL maakt daar WAAR of ONWAAR van, en het optellen vormt de OF. De betere keuze bij grote aantallen.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| #WAARDE! door een los tekstargument | OF(B2="Noord"; "Zuid") geeft #WAARDE!. | Elk argument moet een volledige voorwaarde zijn. Schrijf OF(B2="Noord"; B2="Zuid"), of vergelijk met een lijst: OF(B2 = F2:F3) (in Excel 2019 en eerder bevestig je dat met Ctrl+Shift+Enter). |
| Telling hoger dan het aantal rijen | Een telling op basis van (voorwaarde1) + (voorwaarde2) komt hoger uit dan het aantal rijen dat voldoet. | Een rij die aan beide voorwaarden voldoet, telt op tot 2. Vergelijk de som eerst met 0, dus ((voorwaarde1) + (voorwaarde2)) > 0, en tel pas daarna. |
| FILTER geeft #WAARDE! of verkeerde rijen | FILTER geeft #WAARDE! of een verkeerd resultaat als je OF als opnemen gebruikt. | Het argument opnemen heeft één WAAR of ONWAAR per rij nodig. Tel de voorwaarden bij elkaar op, dan houdt elke rij haar eigen uitkomst. |
| De regel vindt veel te weinig tickets | EN(B2="IT"; C2>10; D2="Hoog") moest betekenen 'IT, en dan oud of hoge prioriteit', maar mist de meeste tickets. | Zet de alternatieven samen in een eigen OF: EN(B2="IT"; OF(C2>10; D2="Hoog")). |
Gebruikt in combinaties
- Boekingen in het weekend en op feestdagen met FILTER, WEEKDAG en AANTAL.ALSToon de journaalposten met een datum op zaterdag, zondag of een Nederlandse feestdag: WEEKDAG markeert de weekenden, AANTAL.ALS toetst de datum aan een feestdagenlijst en FILTER houdt de gemarkeerde rijen over.Excel 2021 of nieuwer (Deze combinatie vereist Excel 2021 of nieuwer)