Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Calculating case age

Hi,

 

I have below columns and would like to create a new column Case Age that willl show days the case is open for.

 

If today is Sep 16 2020 then the Case Age column should show below. If there is closeddatetime entered then null for Case Age.

 

Thanks 

 

Daven

 

CreatDateTimeCloseDateTime

Case Age

 

5/29/2020 5:31:36 PM6/12/2020 11:47:10 AMnull
4/22/2020 11:16:47 AM 147

09/16/2020 11:16:47 AM

 0

09/15/2020 11:16:47 AM

 

 1
   
  • Hi Anonymous 

    and here is my final version:

     

     

    Measure = 
    VAR _CurrentCreatDateTime = CONVERT(MAX('Table'[CreatDateTime]),DOUBLE)
    VAR _CurrentCloseDateTime = MAX('Table'[CloseDateTime])
    RETURN
       IF(
            _CurrentCloseDateTime = BLANK(),
            INT(CONVERT(NOW(),DOUBLE) - _CurrentCreatDateTime) ,
            BLANK()
        )

     

    With kind regards from the town where the legend of the 'Pied Piper of Hamelin' is at home
    FrankAT (Proud to be a Datanaut)

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    hi Anonymous - you can achieve this by using a calculated column as seen in the below screenshot

     

    Essentially I am checking if CloseDateTime is Blank and when it is I am building TODAY's date from Year, Month & Day (without time) and subtracting the CreateDateTime  (again using Year, Month, Day) and formatting the difference as a number. 

     

    Case Age =
    IF (
    'ZZZ - CaseAge'[CloseDateTime] = BLANK (),
    FORMAT (
    DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), DAY ( TODAY () ) )
    - DATE ( YEAR ( 'ZZZ - CaseAge'[CreatDateTime] ), MONTH ( 'ZZZ - CaseAge'[CreatDateTime] ), DAY ( 'ZZZ - CaseAge'[CreatDateTime] ) ),
    "0"
    )
    )
     

    Please mark the post as a solution and provide a 👍 if my comment helped with solving your issue. Thanks!

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks,

       

      Is it possible to create a column from Transform Data --> Custom Column?

       

      Best, 

       

      Daven 

  • FrankAT's avatar
    FrankAT
    Community Champion

    Hi Anonymous 

    you can try it very easy with Power Query like this (don't bother with date and time format in figur below, it's localized):

     

    // Table
    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fcm7DcAgDAXAVZBrJPsZ7Ah3GQCJHrH/GvkVaaK0d3OSsTZWUUkWBVE8jU6ZnKEPA1G3gKS908qTKus78DOvyXSnNIb/rn3vOgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [CreatDateTime = _t, CloseDateTime = _t]),
        #"Changed Type with Locale" = Table.TransformColumnTypes(Source, {{"CreatDateTime", type datetime}}, "en-US"),
        #"Changed Type with Locale1" = Table.TransformColumnTypes(#"Changed Type with Locale", {{"CloseDateTime", type datetime}}, "en-US"),
        #"Added Custom" = Table.AddColumn(#"Changed Type with Locale1", "Case Age", each if [CloseDateTime] = null then DateTime.LocalNow() - [CreatDateTime] else null),
        #"Changed Type" = Table.TransformColumnTypes(#"Added Custom",{{"Case Age", type number}}),
        #"Rounded Off" = Table.TransformColumns(#"Changed Type",{{"Case Age", each Number.Round(_, 0), type number}})
    in
        #"Rounded Off"

     

    With kind regards from the town where the legend of the 'Pied Piper of Hamelin' is at home
    FrankAT (Proud to be a Datanaut)

  • FrankAT's avatar
    FrankAT
    Community Champion

    Hi Anonymous 

    with a measure you can achieve the expected result like this:

     

     

    Measure =
    VAR _CurrentCreatDateTime = CONVERT ( MAX ( 'Table'[CreatDateTime] ), DOUBLE )
    VAR _CurrentCloseDateTime = MAX ( 'Table'[CloseDateTime] )
    RETURN
        IF (
            _CurrentCloseDateTime = BLANK (),
            INT (
                CALCULATE (
                    CONVERT ( NOW (), DOUBLE ) - _CurrentCreatDateTime,
                    'Table'[CloseDateTime] = BLANK ()
                )
            ),
            BLANK ()
        )
    

     

    With kind regards from the town where the legend of the 'Pied Piper of Hamelin' is at home
    FrankAT (Proud to be a Datanaut)

  • FrankAT's avatar
    FrankAT
    Community Champion

    Hi Anonymous 

    and here is my final version:

     

     

    Measure = 
    VAR _CurrentCreatDateTime = CONVERT(MAX('Table'[CreatDateTime]),DOUBLE)
    VAR _CurrentCloseDateTime = MAX('Table'[CloseDateTime])
    RETURN
       IF(
            _CurrentCloseDateTime = BLANK(),
            INT(CONVERT(NOW(),DOUBLE) - _CurrentCreatDateTime) ,
            BLANK()
        )

     

    With kind regards from the town where the legend of the 'Pied Piper of Hamelin' is at home
    FrankAT (Proud to be a Datanaut)