Mijn Communities
Help
Jo-lean
CHAMPION *

Leeftijd op datum in dienst

door Jo-lean

Weet iemand of het mogelijk is om in een rapport de leeftijd op de datum in dienst eenvoudig naar voren te halen?

25 ANTWOORDEN 25
Inske Reumer
CONTRIBUTOR ***

door Inske Reumer (Bijgewerkt ‎24-01-2025 12:49 door Inske Reumer )

@Jo-lean 

Entiteit  = Contract
Type = Berekend veld


Voeg in je datamodel een berekend veld toe en kopieer in de tekstblok 'Berekend veld' deze formule:

VAR Geboortedatum =
 IFERROR(
        LOOKUPVALUE(
            Person[DateOfBirth],  -- De waarde die je wilt ophalen

            Person[Person_BK],    -- De kolom waarin gezocht wordt

            'Contract'[Person_BK] -- De waarde waarmee gezocht wordt

        ),

        BLANK() -- Voorkomt fouten als er geen match is

    )

 

VAR DatumInDienst = 'Contract'[Date_in_service]

 

RETURN

IF(

    ISBLANK(Geboortedatum),

    BLANK(),

    DATEDIFF(Geboortedatum, DatumInDienst, YEAR) +

        IF(

            DATE(YEAR(DatumInDienst), MONTH(Geboortedatum), DAY(Geboortedatum)) < DatumInDienst,

            -1,

            0

        )

)

Jo-lean
CHAMPION *

door Jo-lean

Hoi @Mathew-DC ,

Ik ben op het moment veel met Self Service processen bezig en wat minder met Reporting, dus ben er nog niet aan toegekomen!

Groet Jolien

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

Ik ben opzoek naar de leeftijd uit dienst zelfde soort vraag. Ik wil alleen nog een stap verder gaan, dat de formule dan niet alleen kijkt naar het jaar, maar ook naar de dag en maand. Wanneer iemand op 9 mei jarig is en op 06 april uit dienst gaat, dan heeft diegene een andere leeftijd dan wanneer dit 14 juli is.


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

Inske Reumer
CONTRIBUTOR ***

door Inske Reumer (Bijgewerkt ‎24-01-2025 12:48 door Inske Reumer )

@Raymond_de_Rozario 


Entiteit  = Contract
Type = Berekend veld


Voeg in je datamodel een berekend veld toe en kopieer in de tekstblok 'Berekend veld' deze formule:

VAR Geboortedatum =

    IFERROR(

        LOOKUPVALUE(

            Person[DateOfBirth],  -- De waarde die je wilt ophalen

            Person[Person_BK],    -- De kolom waarin gezocht wordt

            'Contract'[Person_BK] -- De waarde waarmee gezocht wordt

        ),

        BLANK() -- Voorkomt fouten als er geen match is

    )

 

VAR DatumUitDienst = 'Contract'[Date_out_of_service]

 

RETURN

IF(

    ISBLANK(Geboortedatum) || ISBLANK(DatumUitDienst),

    BLANK(),

    DATEDIFF(Geboortedatum, DatumUitDienst, YEAR) +

        IF(

            DATE(YEAR(DatumUitDienst), MONTH(Geboortedatum), DAY(Geboortedatum)) < DatumUitDienst,

            -1,

            0

        )

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

Dat is ook een hele mooie oplossing! Dank je wel. Nu moet ik nog een volgend probleem oplossen, maar daar maak ik wel een nieuw topic voor aan als ik er niet uit kom.


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

Jo-lean
CHAMPION *

door Jo-lean

Hoi @Raymond_de_Rozario,

Zie het script hieronder, het wordt een getal met 2 decimalen dus je ziet wel de precieze leeftijd.

Groet Jolien

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

Dank je wel voor het taggen. Ik ga er mee stoeien!


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

funkma
CONTRIBUTOR **

door funkma

Ik ben op zoek naar een methode om de leeftijd op een willekeurige peildatum (uit een datumslicer) te bepalen. Lijkt een vergelijkbare vraag

 

funkma
CONTRIBUTOR **

door funkma

Met de verschillende varianten die benoemd zijn heb ik met de volgende meting in persoon de gewenste leeftijd gevonden (als geheel getal op de exacte datum):

@@lft_peildatum =
VAR peildatumLASTDATE('Reference date filters'[Date])
VAR geb_dat = MIN('Person'[DateOfBirth])
VAR leeftijd = DATEDIFF(geb_dat, peildatum, year)
Return leeftijd + IF (date(year(geb_dat), month(peildatum), day(peildatum)) < geb_dat , -1, 0)
 
de MIN mag ook MAX zijn
 

door Jacqueline van Meeuwen

deze zoek ik ook

Jo-lean
CHAMPION *

door Jo-lean

Hoi @funkma en @Jacqueline van Meeuwen 

Dit is in een rapportenuurtje besproken en had ik daar wel toegevoegd als reactie, maar hier alsnog even:

Dit script werd gegeven (als meting):

INT(DATEDIFF(MAX(Person[DateOfBirth]), 'Reference date filters'[Selected date], DAY)/365.25)

waarmee je dus de leeftijd kunt berekenen op de ingevoerde datum in een slicer.

 

Voor de leeftijd op de datum in dienst werd het volgende script gegeven (als kolom):

DIVIDE(DATEDIFF(RELATED(Person[DateOfBirth]),'Contract History'[Date_in_service],DAY),365.25)

Het is mij niet gelukt deze werkend te krijgen, toen ik gebruik ging maken van de eerste datum in dienst werkte die wel. Script vraagt dus nog een kleine aanpassing.

 

Hopelijk kunnen jullie hier ook mee verder!

Mathew-DC
CHAMPION *

door Mathew-DC

@Jo-lean De berekende kolom DIVIDE(DATEDIFF(RELATED(Person[DateOfBirth]),'Contract History'[Date_in_service],DAY),365.25) werkt bij mij wel goed als ik die plaats onder de entiteit Dienstverband historie, heb je dat al geprobeerd?

Jo-lean
CHAMPION *

door Jo-lean

Hoi @Mathew-DC ,

Dat had ik dacht ik gedaan maar weet ik niet zeker meer, ik ga het later nog eens proberen, bedankt!

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

Bij mij ging het om de datum uit dient, maar dat was een kleine aanpassing. Ik heb onderstaande formules geprobeerd:....

 

DIVIDE(DATEDIFF(RELATED('Person'[DateOfBirth]),'Contract History'[Date out of service],DAY),365.25)

 

en 

 

DIVIDE(DATEDIFF(RELATED('Person'[DateOfBirth]),'Contract  History'[Date_out_of_service],DAY),365.25)

Beide komen met de melding

 

Raymond_de_Rozario_0-1731655181818.png

 

Wanneer ik naar contract (dus niet historische gegevens) verwijs, dan blijft Youforce Reporting de hele tijd op "in behandeling" staan

 

DIVIDE(DATEDIFF(RELATED('Person'[DateOfBirth]),'Contract'[Date out of service],DAY),365.25)

 


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

Mathew-DC
CHAMPION *

door Mathew-DC

@Jo-lean en @Raymond_de_Rozario Voor een meting maakt het niet uit, maar onder welke entiteit hebben jullie de berekende kolom toegevoegd in het datamodel? Ik denk dat de RELATED-functie vanuit deze entiteit probeert een relatie te leggen met de tabel Dienstverband(historie); misschien dat dat niet kan en daarom de meting wel lukt en de berekende kolom niet?

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

@Mathew-DC met DIVIDE(DATEDIFF(RELATED('Person'[DateOfBirth]),'Contract'[Date out of service],DAY),365.25) krijg ik dezelfde melding. Ik heb de meeting onder Person geplaatst.


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

Mathew-DC
CHAMPION *

door Mathew-DC

Als het een meting is, dan zou het niet moeten uitmaken. Maar als het bij de berekende kolom hoort die Jo-lean postte, dan kan ik me voorstellen dat RELATED niet werkt, omdat je vanuit de entiteit 'Person' verwijst naar een ander veld uit dezelfde entiteit.

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

@Mathew-DC In mijn formule verwijs ik naar twee verschillende entiteiten/tabellen


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden

Mathew-DC
CHAMPION *

door Mathew-DC

@Raymond_de_Rozario Wat ik bedoel is dat RELATED('Person'[DateOfBirth]) niet werkt vanuit de entiteit Person. Ik krijg in dat geval dezelfde foutmelding die jij noemde.

Raymond_de_Rozario
ACTIVE CONTRIBUTOR ***

door Raymond_de_Rozario

Heb je het op kunnen lossen @Mathew-DC ? Zo ja, op welke wijze?


Met vriendelijke groeten,

Raymond de Rozario
Bedrijfskundig applicatiemedewerker

Medisch Centrum Leeuwarden