Forum Discussion

frankhofmans's avatar
frankhofmans
Icon for Helper IV rankHelper IV
5 years ago
Solved

How to present frequent cases

Hi PBI experts,

 

I have the following problem:

 

i have a database with sick employees and the sickness date. I want to present the number of sickness cases if:

 

- a employee is sick 3 times or more in the 6 months before the last sickness date

- a empoloyee is sick 4 times or more in the 12 months before the last sickness date

 

This is an example of my database:

 

Employee IDSickness date
11001-12-2019
12301-12-2020
13503-01-2020
14707-01-2020
17820-02-2020
15910-01-2020
20001-03-2020
20105-03-2020
26710-03-2020
12310-04-2020
15910-05-2020
17812-05-2020
11013-05-2020
11020-05-2020
15901-06-2020
12303-06-2020
20001-07-2020
20003-08-2020
17810-08-2020
17801-09-2020

 

I want 1 graph and 1 table:

 

Graph:

Month/Year01-202002-202003-202004-202005-202006-202007-202008-202009-2020
# of frequent cases00002 (2x empl. ID 110)2 (empl ID 159 and empl ID 123)2 (2x empl. ID 200)1 (empl ID 178)1 (emp ID 178)

 

Table (for example selected periode 06-2020)

 

Employee IDLast sickness date# of cases in 6 months before latest sickness date# of cases in 12 months before latest sickness date
12303-06-202033
15901-06-202033

 

Can someone help me out with this question?

 

Thanks in advance!

 

Regards, Frank

  • Anonymous's avatar
    Anonymous
    5 years ago

    Hi frankhofmans ,

     

    Based on your description, you can create some measures as follows.

    Thanks for amitchandak 's advise.

     

    Test table:

     

    rolling 12 months = CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-12,MONTH))




    rolling 6 months = CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-6,MONTH))




    Measure 2 =

    var x1=IF(CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-12,MONTH))>=4,1)

    var x2=IF(CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-6,MONTH))>=3,1)

    return

    x1+x2

     

    Result:

    • Graph:

     

    • Table:

     

    Hope that's what you were looking for.

    Best Regards,

    Yuna

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

3 Replies

  • frankhofmans , Try with help from date table

     

    Rolling 6 = CALCULATE(sum(Table[Sickness date]),DATESINPERIOD('Date'[Date ],MAX(Table[Sickness Date]),-6,MONTH))

     

    Rolling 12 = CALCULATE(sum(Table[Sickness date]),DATESINPERIOD('Date'[Date ],MAX(Table[Sickness Date]),-12,MONTH))

    • frankhofmans's avatar
      frankhofmans
      Icon for Helper IV rankHelper IV

      Hi Amitchandak,

       

      If i generate your measure or calculated colums, i get only results with value 1. Do you have an example for me? 

       

      Thanks in advance,

       

      Regards, Frank

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi frankhofmans ,

     

    Based on your description, you can create some measures as follows.

    Thanks for amitchandak 's advise.

     

    Test table:

     

    rolling 12 months = CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-12,MONTH))




    rolling 6 months = CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-6,MONTH))




    Measure 2 =

    var x1=IF(CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-12,MONTH))>=4,1)

    var x2=IF(CALCULATE(COUNT('Table'[Sickness date]),DATESINPERIOD('Table'[Sickness date],MAX('Table'[Sickness date]),-6,MONTH))>=3,1)

    return

    x1+x2

     

    Result:

    • Graph:

     

    • Table:

     

    Hope that's what you were looking for.

    Best Regards,

    Yuna

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.