Ga naar inhoud
  • 0

Case... [OPGELOST]


andries

Vraag

Een schaamtelijk probleem, maar ik krijg het gewoon niet opgelost...

 

Ik heb een opleidingsschema opgemaakt, waarbij de opleidingen worden gequoteerd van 0-100. Het is de bedoeling dat als ze minder als 10 halen er een rode achtergrond (container) moet komen, tussen 10-50 een oranje, 50-80 een gele en 80-100 een groene.

 

Ik heb dus voor elke puntenwaarde een container aangemaakt, en een afbeeldingen van die kleur ingeladen.

 

Ik heb ook een container gemaakt, die bepaald wordt door een calculatie, en hier zit het probleem.

 

Dit is de calculatie die ik invoerde:

 

Case(
Progress<10;bg0010;
10  ≤  Progress < 50;bg1050;
50  ≤  Progress < 80;bg5080;
80  ≤  Progress ≤ 100;bg80100
)

 

Nu dacht ik dat dit zou kloppen, en dat hij dus bij een waarde tussen 0-10 container bg0010 zou tonen, bij een waarde tussen 10-50 bg1050 zou tonen, bij een waarde tussen 50-80 bg5080 zou tonen, ...

 

Maar hij toont enkel tussen 0-10 een bg1050 en bij de rest toont hij bg5080 (wat dus als default wordt aanschouwd neem ik aan). Mijn vraag is: wat is hier mis met deze opbouw van de Case.

 

Alvast bedankt en ik schaam mij toch een beetje om deze vraag.

 

Groetjes

 

Andries

aangepast door Gast
Link naar reactie

10 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Heb er nu dit van gemaakt:

 

Case(
Progress  >  80 ; bg80100;
Progress  >  50 ; bg5080 ;
Progress > 10  ; bg1050 ;
bg0010
)

 

Nu toont hij idd groen (bg80100) als het groter is dan 80, maar in al de andere gevallen weer gewoon rood (bg0010). Hij leest precies enkel de eerste voorwaarde en als die volbracht is toont hij het juiste, in het andere geval gaat hij gewoon naar de default (bg0010)

Link naar reactie
  • 0

en nu werkt het wel... ik weet niet wat ik heb aangepast, maar plotseling werkt het perfect.

 

Alvast bedankt voor de tip. Nog een algemene vraag. In het geval van een Case leest hij de eerste voorwaarde, is die voldaan toont hij het resultaat. Is die niet voldaan gaat hij naar de tweede voorwaarde etc etc... Ik wil maar zeggen: mijn eerste formule had ik onnodig ingewikkeld gemaakt door met die intervallen te werken. of ben ik mis?

Link naar reactie
  • 0

Inderdaad, de Case() stopt bij de eerste overeenkomst en anders neemt het de default waarde.

 

Juist die intervallen zijn eigenlijk niet nodig.

 

We zijn gewoon om van 'kleinste' waarde naar 'grootste' waade te rekenen, terwijl bij het gebruik van Case() het aangewezen is omgekeerd te werken.

Dan heb je eigenlijk de 'tussenwaarden' niet nodig, die zitten ingebakken in de volgorde van de voorwaarde.

 

De beperking werkt dan enkel op de eerst lagere waarde.

 

Een voorbeeld, het moet een kleur weergeven bij een waarde tussen 50 en 80, stel dat je 62 hebt.

 

Is 62 groter dan 80 ? Neen, dus gaan we naar de volgende regel.

Is 62 groter dan 50 ? Ja, dus geef de kleur.

 

Geen beperking van groter dan 50 EN kleiner dan 80, dat zit reeds in je volgorde.....

Link naar reactie
  • 0
Staat iig niet goed uitgelegd in de function reference...

Ik vind anders van wel :P En de rest is puur logisch denken :wink:

The Case function evaluates each test expression in order, and when a True expression is found, returns the value specified in result for that expression.
Link naar reactie
  • 0

De hellp file/functie reference volgt de 80/20 regel.

 

Het is voor 80 % utgelegd en de overige 20 % moet je erbij denken.

 

Heeft weinig met logisch denken te maken omdat je logischer wijze van klein naar groot denkt.

Dan moet je de ceiling er wel bij zetten.

 

Bij het omgekeerd werken heb je de ceiling niet nodig, de volgorde waarin je de argumenten zet zorgt vanzelf voor de ceiling.

 

Eigenlijk pas je hier herhaaldelijk de boolean theorie toe.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...