martindes Posted November 12, 2015 Posted November 12, 2015 Het nesten van formules blijft een beetje een probleem voor mij. Bijvoorbeeld Ik heb een veld waar een getal in kan staan maar ook tekst zoals RET, DNQ, DSQ of DNS Van alle records wil ik de waardes die een getal zijn en de waarde DSQ bij elkaar optellen. De andere waardes moeten niet meegeteld worden. Volgens mij kan ik dat doen met een case functie waarin ik een count functie zou kunnen nesten. (of andersom) En dat laatste lukt mij dus niet. Kan iemand mij daarmee op weg helpen zodat ik wat beter vat krijg op het maken van geneste formules? Met vriendelijke dank. Quote
0 menno Posted November 12, 2015 Posted November 12, 2015 Case ( Abs ( GetAsNumber ( Veld ) ) > 0 ; GetAsNumber ( Veld ) ; Veld = "DSQ" ; 1 ; 0 ) Gewoon logisch de stappen die je op papier zou doen achter elkaar zetten ... zodra er iets waar is, ben je klaar. Quote
0 martindes Posted November 21, 2015 Author Posted November 21, 2015 Excuus voor de late reactie. Nogal druk en in China (waar ik verblijf) is dit forum af en toe niet bereikbaar. Ik snap het een beetje. De onderstaande formule krijg ik bijvoorbeeld niet voor elkaar met het nesten. Ik heb een geboortedatum en een overlijdensdatum. Ik gebruik hiervoor 4 velden. "geboortedatum" "overlijdensdatum" "leeftijd" "leeftijd bij overlijden" Wanneer de persoon nog leeft dan blijft het veld "leeftijd bij overlijden leeg. Is de persoon overleden dan blijft het veld leeftijd leeg en geeft het veld "leeftijd bij overlijden" de leeftijd weer. Echter ik heb een aantal personen in de database waar ik of de geboortedatum en de overlijdensdatum niet van heb. Nu verschijnt er in het veld leeftijd bij deze personen "2015" Dat is uiteraard de uitkomst van de formule omdat die begint te tellen bij het begin van de jaartelling. Ik zou in het veld "geboortedatum" "onbekend" willen hebben wanneer de geboortedatum niet bekend is. Wanneer ik in deze formule de regel "(IsEmpty (Geboortedatum));"Onbekend";" als eerste plaats dan kloppen de () niet meer. Dat snap ik dus niet. Case (IsEmpty (Overlijdensdatum); Year ( Get ( HuidigeDatum ) ) - Year ( Geboortedatum ) - If ( Get ( HuidigeDatum ) < Date ( Month ( Geboortedatum ) ; Day ( Geboortedatum ) ; Year ( Get ( HuidigeDatum ) ) ); 1 ; 0 ); (IsEmpty (Geboortedatum));"Onbekend"; "" ) Quote
0 menno Posted November 21, 2015 Posted November 21, 2015 Het probleem is dat je begint met Case ( IsEmpty ( Overlijdensdatum ) Je moet je afvragen wat de meest significante factor is. In dit geval is dat de "Geboortedatum", want als die onbekend is kan je de leeftijd bij leven, noch bij overlijden uitrekenen. De berekening voor de leeftijd bij leven zou er als volgt uit kunnen zien: Case ( IsEmpty ( Geboortedatum ) and IsEmpty ( Overlijdensdatum ) ; "Onbekend" ; IsEmpty ( Geboortedatum ) ; "" ; IsEmpty ( Overlijdensdatum ) ; Year ( Get ( HuidigeDatum ) - Geboortedatum + 1 ) - 1 ; "" ) En de leeftijd bij overlijden zo: Case ( IsEmpty ( Overlijdensdatum ) ; "" ; IsEmpty ( Geboortedatum ) ; "Onbekend" ; Year ( Overlijdensdatum - Geboortedatum + 1 ) - 1 ) Je ziet dat de formule voor de leeftijdsberekening ook wat korter is dan de jouwe. Dat kan alleen maar omdat jij de leeftijd in jaren vraagt. De "-1" is omdat de jaartelling start in het jaar "1" terwijl wij leeftijd tellen vanaf "0", de "+1" is omdat wij de leeftijd aan het begin van de verjaardag een jaar opschuiven ipv aan het einde van de verjaardag. Quote
0 martindes Posted November 22, 2015 Author Posted November 22, 2015 Dank je. Dit maakt het een stuk duidelijker voor mij. Ik heb nog een andere vraag op een ander topic. Misschien dat je daar ook naar kan kijken als je tijd hebt. Quote
Question
martindes
Het nesten van formules blijft een beetje een probleem voor mij.
Bijvoorbeeld
Ik heb een veld waar een getal in kan staan maar ook tekst zoals RET, DNQ, DSQ of DNS
Van alle records wil ik de waardes die een getal zijn en de waarde DSQ bij elkaar optellen.
De andere waardes moeten niet meegeteld worden.
Volgens mij kan ik dat doen met een case functie waarin ik een count functie zou kunnen nesten. (of andersom)
En dat laatste lukt mij dus niet.
Kan iemand mij daarmee op weg helpen zodat ik wat beter vat krijg op het maken van geneste formules?
Met vriendelijke dank.
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.