Beschikbaar in:Alle versies (Werkt in Excel 2007, elke latere versie, Microsoft 365 en Excel voor het web)Voorbeelden vragen Excel 2024 of nieuwerCategorie:Logisch

OF

OR in Engelstalige Excel

Geeft WAAR zodra minstens één van de opgegeven voorwaarden WAAR is, en alleen ONWAAR als ze allemaal ONWAAR zijn.

Moeilijkheidsgraad 2 van 5. Dat één WAAR genoeg is, heb je snel door; het gaat mis zodra je OF met EN combineert of OF in een matrixformule door optellen vervangt.

Laatst bijgewerkt: 13 oktober 2026

Bekijk de uitgewerkte voorbeelden

Fragment van het werkblad: in D2 staat de formule
RijABCD
1BoekstukDagboekBedragToetsen
225-0412MEM€1,250.00€ 1.250,00WAARWAAR=OF(B2="MEM", C2>=25000)=OF(B2="MEM"; C2>=25000)
325-0413VRK€18,400.00€ 18.400,00
425-0414INK€6,300.00€ 6.300,00
525-0415BNK€25,000.00€ 25.000,00
625-0416MEM€48,000.00€ 48.000,00
Formulecel (D2)Invoer

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

OF(logisch1, [logisch2], ...)
OF(logisch1; [logisch2]; ...)
Argumenten
ArgumentSoortBetekenis
logisch1VerplichtDe eerste voorwaarde, meestal een vergelijking zoals B2>5000.
logisch2OptioneelNog 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.

Fragment van het werkblad: in D2 staat de formule
RijABCDE
1BoekstukDagboekBedragToetsen
225-0412MEM€1,250.00€ 1.250,00WAARWAAR=OF(B2="MEM", C2>=25000)=OF(B2="MEM"; C2>=25000)
325-0413VRK€18,400.00€ 18.400,00
425-0414INK€6,300.00€ 6.300,00
525-0415BNK€25,000.00€ 25.000,00
625-0416MEM€48,000.00€ 48.000,00
7
Formulecel (D2)Invoer

Formule in D2

=OF(B2="MEM", C2>=25000)
=OF(B2="MEM"; C2>=25000)

Resultaat: WAAR

Stap voor stap
  1. Excel rekent logisch1 uit: in B2 staat MEM, en "MEM"="MEM" is WAAR.
  2. Toch rekent Excel ook logisch2 uit: in C2 staat 1250, en 1250>=25000 is ONWAAR.
  3. Eén van de twee is WAAR, dus OF geeft WAAR voor boekstuk 25-0412: een handmatige regel, geselecteerd ongeacht het bedrag.
  4. In D3: VRK is niet MEM, en 18400>=25000 is ONWAAR, dus ONWAAR. D4: INK en 6300 geven ook ONWAAR.
  5. D5 heeft precies 25000 op een BNK-regel. De test gebruikt >=, dus 25000>=25000 is WAAR en de regel wordt geselecteerd. D6 heeft twee redenen (MEM en 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.

Fragment van het werkblad: in D2 staat de formule
RijABCDEFGH
1DebiteurSaldoIn geschilActieBevestigen vanaf2500025000
2D1001€18,200.00€ 18.200,00ONWAAROverslaanOverslaan=ALS(OF(B2>=$G$1, C2), "Bevestigen", "Overslaan")=ALS(OF(B2>=$G$1; C2); "Bevestigen"; "Overslaan")
3D1002€31,500.00€ 31.500,00ONWAAR
4D1003€4,800.00€ 4.800,00WAAR
5D10049600ONWAAR
6D1005€25,000.00€ 25.000,00ONWAAR
7
Formulecel (D2)InvoerOpmerking: B5 bevat de tekst 9600, niet het getal: het staat links in de cel en toont een groen driehoekje.

Formule in D2

=ALS(OF(B2>=$G$1, C2), "Bevestigen", "Overslaan")
=ALS(OF(B2>=$G$1; C2); "Bevestigen"; "Overslaan")

Resultaat: Overslaan

Stap voor stap
  1. Excel rekent eerst de OF uit. logisch1 is B2>=$G$1: 18200>=25000, en dat is ONWAAR.
  2. logisch2 is C2, en daarin staat ONWAAR: het saldo is niet in geschil. Allebei ONWAAR, dus OF geeft ONWAAR.
  3. ALS krijgt ONWAAR en geeft waarde_als_onwaar terug: Overslaan, voor D1001.
  4. D3: 31500>=25000 is WAAR, dus Bevestigen. D4: 4800>=25000 is ONWAAR, maar C4 is WAAR, dus ook Bevestigen. Zonder het tweede argument was het saldo in geschil niet bevestigd.
  5. D5 vergelijkt 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.
  6. D6 heeft precies 25000, en >= telt dat mee, dus Bevestigen. Zet G1 op 18000 en ook D2 wordt 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.

Fragment van het werkblad: in G4 staat de formule
RijABCDEFGH
1BoekstukDagboekBedragPeriodePeriode1212
225-0701MEM€3,500.00€ 3.500,001212Handmatig dagboekMEM
325-0702VRK€42,000.00€ 42.000,001212Bedrag boven2000020000
425-0703MEM€61,000.00€ 61.000,001212Toetsen25-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)))
525-0704MEM€9,000.00€ 9.000,00111125-0702
625-0705INK€7,800.00€ 7.800,00121225-0703
725-0706BNK€20,000.00€ 20.000,001212
825-0707VRK€55,000.00€ 55.000,001111
9
Formulecel (G4)InvoerOverloopresultaat

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
  1. 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.
  2. 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.
  3. 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.
  4. FILTER houdt elke rij over waarvan de waarde in opnemen niet 0 is, dus de 2 bij 25-0703 telt net zo goed als een 1. De lijst loopt over van G4 tot G6: 25-0701, 25-0702, 25-0703.
  5. 25-0706 heeft precies 20000, en 20000>20000 is ONWAAR, dus dat boekstuk blijft erbuiten. Zet G3 op 5000, dan komen 25-0705 (7800) en 25-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.

Fragment van het werkblad: in E2 staat de formule
RijABCDEFG
1BoekstukRekeningBedragPeriodeMarkeringAandachtslijst
225-080140004000€4,200.00€ 4.200,001111ONWAAR=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
325-080218001800€1,800.00€ 1.800,001212WAAR19901990
425-080380008000€125,000.00€ 125.000,001212WAAR49904990
525-080445004500€3,000.00€ 3.000,001313WAAR
625-080516001600€98,500.00€ 98.500,001212ONWAAR
7
Formulecel (E2)InvoerOverloopresultaat

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
  1. LET geeft de aandachtslijst een naam: bewaakt is F2:F4, met de rekeningen 1800, 1990 en 4990.
  2. MAP loopt tegelijk door B2:B6, C2:C6 en D2:D6 en roept de LAMBDA één keer per regel aan. De eerste aanroep krijgt rekening 4000, bedrag 4200 en periode 11.
  3. 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.
  4. 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.
  5. 25-0802: 1800 = bewaakt geeft WAAR, ONWAAR, ONWAAR, dus WAAR. 25-0803: 125000 > 100000 is WAAR. 25-0804: periode 13 > 12 is WAAR. 25-0805 mist alle drie (rekening 1600, 98500, periode 12), dus ONWAAR.
  6. MAP verzamelt de vijf antwoorden en laat ze overlopen van E2 tot E6: ONWAAR, WAAR, WAAR, WAAR, ONWAAR. Typ 1600 over 4990 heen in F4 en E6 wordt 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

Veelgemaakte fouten
SymptoomOorzaakOplossing
#WAARDE! door een los tekstargumentOF(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 rijenEen 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 rijenFILTER 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 ticketsEN(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