Forum Discussion

frankhofmans's avatar
frankhofmans
Helper IV
3 years ago
Solved

Recovery curve

hi all,

 

i have a table with all our sickness data and i want to create a yearly recovery curve. The table looks like this;

 

Sickness IDStart dateRecovery dateIs Recovered# Sickness days
00101-01-202101-09-20211244
00201-10-202102-10-202112
00301-11-202108-11-202118
00401-05-2021   
00501-07-202101-09-2021163
00601-01-2022

01-02-2022

1

32

00701-03-20224-03-202214
00801-04-202201-04-202211
00901-05-2022   
01001-05-202020-03-20221689
Etc    

 

This table contains about 500k rows 🙂

 

i want to create the number of recovered cases as % of the total number of recovered cases in a year, per day, so:

 

2021: number of recovered cases = 4 ( formula = calculate(sum(isRecovered),userelationship(date table(date),recovery date))

2022: number of recovered cases = 4

 

Day123456789100720
20210%25%25%25%25%25%25%50%50%75%100%
202225%25%25%50%50%50%50%50%50%75%100%

 

So i want a X axis with number 1 to 720 (maximum # number of sickness days in our country) and on Y axis the cumulated recovery %. 

 

Does anybody have a solution for the second formula to create a cumulated recovery line?

 

Many thanks in advance,

 

Regards,

Frank

  • Anonymous's avatar
    Anonymous
    3 years ago

    HI

     

    I get this for you in 2 measures

    Percentagerecov2021 =
    VAR compteurvalue =
        SELECTEDVALUE ( Compteur[Value] )
    VAR nbrecovtotal =
        CALCULATE (
            SUM ( Recovery[Is Recovered] ),
            Recovery[Yearsd] = 2021
        )
    VAR result =
        DIVIDE (
            CALCULATE (
                CALCULATE (
                    SUM ( Recovery[Is Recovered] ),
                    Recovery[Yearsd] = 2021
                        && Recovery[# Sickness days] <= compteurvalue
                )
            ),
            nbrecovtotal
        )
    RETURN
        result
     
    Percentagerecov2022 =
    VAR compteurvalue =
        SELECTEDVALUE ( Compteur[Value] )
    VAR nbrecovtotal =
        CALCULATE (
            SUM ( Recovery[Is Recovered] ),
            Recovery[Yearsd] = 2022
        )
    VAR result =
        DIVIDE (
            CALCULATE (
                CALCULATE (
                    SUM ( Recovery[Is Recovered] ),
                    Recovery[Yearsd] = 2022
                        && Recovery[# Sickness days] <= compteurvalue
                )
            ),
            nbrecovtotal
        )
    RETURN
        result
     
    I just add a column with the year on the table

     

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    HI

     

    I get this for you in 2 measures

    Percentagerecov2021 =
    VAR compteurvalue =
        SELECTEDVALUE ( Compteur[Value] )
    VAR nbrecovtotal =
        CALCULATE (
            SUM ( Recovery[Is Recovered] ),
            Recovery[Yearsd] = 2021
        )
    VAR result =
        DIVIDE (
            CALCULATE (
                CALCULATE (
                    SUM ( Recovery[Is Recovered] ),
                    Recovery[Yearsd] = 2021
                        && Recovery[# Sickness days] <= compteurvalue
                )
            ),
            nbrecovtotal
        )
    RETURN
        result
     
    Percentagerecov2022 =
    VAR compteurvalue =
        SELECTEDVALUE ( Compteur[Value] )
    VAR nbrecovtotal =
        CALCULATE (
            SUM ( Recovery[Is Recovered] ),
            Recovery[Yearsd] = 2022
        )
    VAR result =
        DIVIDE (
            CALCULATE (
                CALCULATE (
                    SUM ( Recovery[Is Recovered] ),
                    Recovery[Yearsd] = 2022
                        && Recovery[# Sickness days] <= compteurvalue
                )
            ),
            nbrecovtotal
        )
    RETURN
        result
     
    I just add a column with the year on the table

     

    • frankhofmans's avatar
      frankhofmans
      Helper IV

      hi James,

       

      this works perfect. I created an extra table with only a colum day (with 1 till 520) and used your formula (and changed the year into a userelationship end date). It's exactly the output i needed.

       

      Many thanks!