• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Volgorde van geneste IF-formules?

Status
Niet open voor verdere reacties.

JulesRules

Gebruiker
Lid geworden
14 mei 2009
Berichten
87
Ik heb niet zozeer een vraag; eerder iets dat me opviel en waar ik me over verwonder.

Ik heb in een Engelstalige excel-versie (professional edition 2003) verschillende manieren van geneste IF-formules geprobeerd en kwam erachter dat de volgorde er blijkbaar toe doet. Ik vroeg me af waarom?

Om een simpel voorbeeld te geven:

=IF(E2>10;"wachten";IF(E2>=4;"nee";"ja"))
werkt prima

=IF(E2>=4;"nee";"ja";IF(E2>10;"wachten"))
geeft een foutmelding "you've entered too many arguments"


Iemand enig idee?
 
Ik heb niet zozeer een vraag; eerder iets dat me opviel en waar ik me over verwonder.

Ik heb in een Engelstalige excel-versie (professional edition 2003) verschillende manieren van geneste IF-formules geprobeerd en kwam erachter dat de volgorde er blijkbaar toe doet. Ik vroeg me af waarom?

Om een simpel voorbeeld te geven:

=IF(E2>10;"wachten";IF(E2>=4;"nee";"ja"))
werkt prima

=IF(E2>=4;"nee";"ja";IF(E2>10;"wachten"))
geeft een foutmelding "you've entered too many arguments"


Iemand enig idee?

Ja, de 2e IF is de vervanger van onwaar-argument.
Als je hier dus Ja neerzet dan gebruik je te veel argumenten.

Met vriendelijke groet,


Roncancio
 
Beste Jules,

Selecteer eens de cel waarin de foute formule staat en klik dan op de fx voor de formulebalk.
Excel komt dan met de wizard formules en zal je precies laten zien hoe de formule opgebouwd is.
In dit geval heb jij voor een functie met drie argumenten er vier ingevoerd. De ja dient in het tweede deel te worden gebruikt achter "wachten". Maar zelfs dan is de formule nog fout, want alles dat groter is dan 10 is al groter dan 4.

Richard

p.s. Roncancio is weer sneller.
 
Beste Jules,

Selecteer eens de cel waarin de foute formule staat en klik dan op de fx voor de formulebalk.
Excel komt dan met de wizard formules en zal je precies laten zien hoe de formule opgebouwd is.
In dit geval heb jij voor een functie met drie argumenten er vier ingevoerd. De ja dient in het tweede deel te worden gebruikt achter "wachten". Maar zelfs dan is de formule nog fout, want alles dat groter is dan 10 is al groter dan 4.

Richard

p.s. Roncancio is weer sneller.


Dan is hij sowieso fout, inderdaad, omdat als ik "ja" achter "wachten" zet, het antwoord nooit "ja" kan zijn.

Als ik dus ja<4<=nee<10<wachten wil hebben, moet ik de korte formule dus vooraan hebben en de lange achteraan. Toch vreemd, omdat het eerste deel alles pakt dat groter is dan 10 en het tweede deel alles vanaf 4, maar dat is geen deel van het eerste deel (pff...is het hier niet te warm voor?!).
Laat ik het zo zeggen: "vanaf vier" zit niet in "na tien", maar toch staat het in de formule erachter.
 
Dan is hij sowieso fout, inderdaad, omdat als ik "ja" achter "wachten" zet, het antwoord nooit "ja" kan zijn.

Als ik dus ja<4<=nee<10<wachten wil hebben, moet ik de korte formule dus vooraan hebben en de lange achteraan. Toch vreemd, omdat het eerste deel alles pakt dat groter is dan 10 en het tweede deel alles vanaf 4, maar dat is geen deel van het eerste deel (pff...is het hier niet te warm voor?!).
Laat ik het zo zeggen: "vanaf vier" zit niet in "na tien", maar toch staat het in de formule erachter.

Dat omdat aan de 1e voorwaarde al voldaan is >4.
Excel kijkt dan niet verder naar de volgende voorwaarde.

Met vriendelijke groet,


Roncancio
 
Lees de reakties eerst eens rustig door voordat je reageert.
Vooral als er gesproken wordt over het 'aantal argumenten'.
Pas al je de kenmerken van een formule begrijpt, krijg je inzicht in de werking, wanneer de grammatica fout met welke resultaten.
Vervolgens komt de inhoudelijke logica aan de orde. Het is prima mogelijk een grammaticaal correcte formule te maken die inhoudelijk onzin is.

Bijv.
= ALS(E4>10;ALS(E4<4;"Overloop";"voer geen negatief getal in");"dit is een datum")
 
Laatst bewerkt:
Lees de reakties eerst eens rustig door voordat je reageert.
Vooral als er gesproken wordt over het 'aantal argumenten'.
Pas al je de kenmerken van een formule begrijpt, krijg je inzicht in de werking, wanneer de grammatica fout met welke resultaten.
Vervolgens komt de inhoudelijke logica aan de orde. Het is prima mogelijk een grammaticaal correcte formule te maken die inhoudelijk onzin is.

Bijv.
= ALS(E4>10;ALS(E4<4;"Overloop";"voer geen negatief getal in";"kleiner dan 0");"dit is een datum")
Waarschijnlijk mis ik hier een deel van de discussie maar snb jouw formule klopt ook niet helemaal hier. Of was dat nu juist de bedoeling?

= ALS(E4>10;ALS(E4<4;"Overloop";"voer geen negatief getal in";"kleiner dan 0");"dit is een datum")
Het rode deel is een argument teveel, toch?
 
Daar heb je volstrekt gelijk in. Ik heb hem maar even verbeterd. :o
 
een IF/ALS heeft 3 argumenten nodig

- de voorwaarde waarnaar gekeken word.
- de waarde als er aan de voorwaarde voldaan word (waar)
- de waarde als er niet aan de voorwaarde voldaan word (onwaar)

deze worden gescheiden door een punt komma.

dus een IF statement is:

=IF(voorwaarde;waar;onwaar)

in zowel waar als in nietwaar kan dus wederom een IF statement staan
dus als onwaar ook weer een ifstatement bevat:
onwaar word dan dus IF(voorwaarde2;waar2;onwaar2)
en de hele formule word dan dus

=IF(voorwaarde;waar;IF(voorwaarde2;waar2;onwaar2))

Kijken we nu naar de formules in je openingspost:

Degene die wel werkt opgesplitst:

=IF(E2>10;"wachten";IF(E2>=4;"nee";"ja"))

Voorwaarde = E2>10
Waar = alle getallen groter dan 10 = "wachten"
Onwaar = IF(E2>=4;"nee";"ja")

en het onwaar is dus
Voorwaarde2 = E2>=4
Waar2 = getallen groter dan 4 maar kleiner dan 10 = "Nee"
Onwaar2 = alle getallen kleiner dan 4 = "ja"


Pak je dus de formule die niet werkt:

=IF(E2>=4;"nee";"ja";IF(E2>10;"wachten"))

word dus gezien als
Voorwaarde: E2>=4
Waar = nee
Onwaar = Ja

Maar dan staat er nog een IF statement achter.... "het Argument te veel"

Als je kijkt naar de getallen "groter dan 10" zullen die allemaal op de voorwaarde "groter dan 4" een waar geven.
je kunt de voorwaarde "groter dan 4" wel eerst zetten maar dan moet je de formule iets aanpassen.

=IF(E2>=4;IF(E2>10;"Wachten";"Nee");"Ja")

Voorwaarde = Voorwaarde: E2>=4
Waar = IF(E2>10;"Wachten";"Nee")
Onwaar = alle getallen kleiner dan 4 = "Ja"

Voorwaarde2 = E2>10
waar2 = getallen groter dan 10 = "Wachten"
onwaar2 = getallen groter dan 4 maar kleiner dan 10 = "Nee"

geeft dezelfde uitkomst

en zo kun je nog tig variaties verzinnen die dezelfde uitkomst krijgen.
Maar de hoofdzaak blijft dat het niet uit maakt hoe de formule in elkaar zit als je je maar aan de basisregel houd van het if statement
=IF(voorwaarde;waar;onwaar)


pffft ik hoop dat het duidelijk is....iets te lange tekst..... :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan