Functie als.voorwaarden af maken.

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
Mijn vraag

In de onderstaande functie werken de formules voor de getallen 1 in cel AM15 tot en met 31 naar behoren, maar ik wil als het getal in cel AM15 groter is dan 31 niets laten retourneren. Dat gebeurt nu niet. Ook voor de getallen groter dan 31 wordt een formule uitgevoerd. Wat doe ik fout?

Relevante software en hardware die ik gebruik
...

Wat ik al gevonden of geprobeerd heb
=ALS.VOORWAARDEN(AM15=1;F15%*W4;AM15=2;F15%*W4;AM15=6;F15%*W4;AM15=7;F15%*W4;AM15=8;F15%*W4;AM15=13;F15%*W4;AM15=15;F15%*W4;AM15=18;F15%*W4;AM15=22;F15%*W4;AM15=23;F15%*W4;AM15=3<5;F15%*W5;AM15=9<12;F15%*W5;AM15=14;F15%*W5;AM15=16;F15%*W5;AM15=19<21;F15%*W5;AM15=24<31;F15%*W5;AM15>31;"")

de volgende oplossing, die niet werkt :) , maar misschien dat een van jullie de fout kan ontdekken.

=ALS(EN(AM15>=1 AM15<=31), ALS(ISGETAL(VERGELIJKEN(AM15, {1,2,6,7,8,13,15,18,22,23}, 0)), F15%*W4, F15%*W5), ALS(EN(AM15>=32 AM15<=58), "", ""))

[ Voor 15% gewijzigd door henkjanlicht op 24-05-2023 10:55 . Reden: nog geen oplossing gevonden ]

Beste antwoord (via henkjanlicht op 24-05-2023 16:49)


  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Probeer dit:
code:
1
=ALS(OF(AM15>31;AM15<1);"";ALS(ISFOUT(VERGELIJKEN(AM15;{1;2;6;7;8;13;15;18;22;23};0));F15%*W5;F15%*W4))

[ Voor 4% gewijzigd door dix-neuf op 24-05-2023 15:45 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Probeer je formule eens met de "Evaluate Formula" te bekijken (Evalueer formule in het Nederlands). Deze zit in je Formule ribbon. Je kunt zo stap voor stap zien wat Excel doet.

When life gives you lemons, start a battery factory


Acties:
  • +2 Henk 'm!

  • tritimee
  • Registratie: December 2006
  • Laatst online: 23:00
oef, ik zou je functie ombouwen naar Switch..

https://p3adaptive.com/20...al-genius-of-switch-true/

Switch(AM15;conditie;resultaat;conditie;resultaat..)

SWITCH function - Microsoft Support

Functie werkt zowel in Excel als in PowerBi gelijk

[ Voor 37% gewijzigd door tritimee op 24-05-2023 09:19 ]


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:35

Reinier

\o/

Kloppen de voorwaarden als AM15=3<5 en AM15=9<12 wel?

Acties:
  • 0 Henk 'm!

  • MNDutch
  • Registratie: November 2012
  • Laatst online: 21:20
Chatgpt geeft hier wel een antwoord op, geen idee of het werkt ;) Wou het testen.

Het lijkt erop dat de logica in de formule niet correct is, waardoor de functie nog steeds wordt uitgevoerd voor getallen groter dan 31. Het probleem is dat de voorwaarden AM15=3<5 en AM15=9<12 niet op de gewenste manier worden geëvalueerd.

Om de gewenste functionaliteit te bereiken, moet je de formule aanpassen. Hier is een herziene versie die zou moeten werken:


=ALS(OF(EN(AM15=1; AM15<=31); EN(AM15=2; AM15<=31); EN(AM15=6; AM15<=31); EN(AM15=7; AM15<=31); EN(AM15=8; AM15<=31); EN(AM15=13; AM15<=31); EN(AM15=15; AM15<=31); EN(AM15=18; AM15<=31); EN(AM15=22; AM15<=31); EN(AM15=23; AM15<=31); EN(AM15>=3; AM15<5; AM15<=31); EN(AM15>=9; AM15<12; AM15<=31); EN(AM15=14; AM15<=31); EN(AM15=16; AM15<=31); EN(AM15>=19; AM15<21; AM15<=31); EN(AM15>=24; AM15<31; AM15<=31)); F15%*W4; "")


In deze herziene formule worden alle voorwaarden gecontroleerd en wordt de formule F15%*W4 alleen uitgevoerd als het getal in cel AM15 gelijk is aan een van de specifieke waarden (1, 2, 6, 7, enz.) en kleiner is dan of gelijk aan 31. Anders wordt een lege waarde ("") geretourneerd.

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:35

Reinier

\o/

@MNDutch zet die check op AM15<=31 dan in een extra ALS() eromheen, dan lijkt me nog wat prettiger leesbaar en compacter.

Ik blijf me afvragen wat TS van plan was met AM15=3<5.

Acties:
  • 0 Henk 'm!

  • MNDutch
  • Registratie: November 2012
  • Laatst online: 21:20
Reinier schreef op woensdag 24 mei 2023 @ 09:24:
@MNDutch zet die check op AM15<=31 dan in een extra ALS() eromheen, dan lijkt me nog wat prettiger leesbaar en compacter.

Ik blijf me afvragen wat TS van plan was met AM15=3<5.
Geen idee, heb de topic start letterlijk door chatgpt gehaald ;)

Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
de volgende oplossing, die niet werkt :) , maar misschien dat een van jullie de fout kan ontdekken.

=ALS(EN(AM15>=1 AM15<=31), ALS(ISGETAL(VERGELIJKEN(AM15, {1,2,6,7,8,13,15,18,22,23}, 0)), F15%*W4, F15%*W5), ALS(EN(AM15>=32 AM15<=58), "", ""))

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
@henkjanlicht,
Eerst beginnen met alle komma's te vervangen door puntkomma's als de landinstellingen op NL staan ingesteld, maar dan ben je er nog niet. Die laatste formule is wel juist te maken, maar eerst voor de zekerheid nog een vraag:
Als AM15 groter dan- of gelijk is aan 32 én kleiner dan- of gelijk is aan 58, moet er niets worden berekend, maar wat als AM18 groter is dan 58 ? Ook niets, of F15%*W5 ?
En wat als AM15 kleiner is dan 1 ?

[ Voor 4% gewijzigd door dix-neuf op 24-05-2023 12:17 ]


Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
Hi Dix-neuf,

Bedankt voor je antwoord. Ik heb de komma's muv de komma's in de getallenreeks vervangen door;
verder heb ik de >=58 verwijderd en kom tot de volgende formule (die nog niet werkt)
=ALS(EN(AM15>=1 AM15<=31);ALS(ISGETAL(VERGELIJKEN(AM15;{1;2;6;7;8;13;15;18;22;23}; 0)); F15%*W4; F15%*W5); ALS((AM15>=32);"";""))

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Wát als AM15 kleiner is dan 1 ?
Met de formule hieronder wordt dan niets berekend en ook niets weergegeven.

[ Voor 73% gewijzigd door dix-neuf op 24-05-2023 15:52 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Probeer dit:
code:
1
=ALS(OF(AM15>31;AM15<1);"";ALS(ISFOUT(VERGELIJKEN(AM15;{1;2;6;7;8;13;15;18;22;23};0));F15%*W5;F15%*W4))

[ Voor 4% gewijzigd door dix-neuf op 24-05-2023 15:45 ]


Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
Dix-neuf,

Super gedaan!

Hij werkt. Kleiner dan 1 zal niet voorkomen. Het gaat om het nummeren van gewichthefoefeningen. Het enige wat ik nu merk is, dat de waarden >31 met een blanco resultaat komen. Ik wilde eigenlijk voor de waarden in AM15>31 de invoerwaarden laten staan. Hoe doe ik dat?

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Zó, denk ik:

code:
1
=ALS(AM15>31;AM15;ALS(ISFOUT(VERGELIJKEN(AM15;{1;2;6;7;8;13;15;18;22;23};0));F15%*W5;F15%*W4))

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:35

Reinier

\o/

Ik ga mijn vraag niet voor de derde keer stellen. Succes verder.

Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
Hoi Dix-neuf

Heel erg bedankt. Ik heb een kleine aanpassing gemaakt.
=ALS(OF(AM15>31;AM15<1);F15;ALS(ISFOUT(VERGELIJKEN(AM15;{1;2;6;7;8;13;15;18;22;23};0));F15%*W5;F15%*W4))

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
In mijn vorig bericht had ik AM15<1 weggelaten omdat je (daarna) schreef dat die waarde niet voor zal komen. Anyway: je moet díe formule nemen die voor jouw situatie het best voldoet, dus als dat bovenstaande is, dan is dat prima!

Acties:
  • 0 Henk 'm!

  • henkjanlicht
  • Registratie: Mei 2023
  • Laatst online: 26-05-2023
Hoi Dix-neuf,

Ik zie het nu pas. Had inderdaad AM15<1 weg kunnen laten. Heb hem nu al verwerkt, maar werkt natuurlijk ook met die toevoeging.

bedankt

Acties:
  • 0 Henk 'm!

  • hihansvdijk
  • Registratie: Mei 2015
  • Laatst online: 23-05-2024
Ik zie wat aparte uitvragingen in je als.voorwaarden formule.
bij voorbeeld de logische test AM15=3<5; zo staan er nog een paar in.
Pagina: 1