Forum Discussion
Backlog average age by day
Hi,
I need to calculate the average age of active tickets relatively to each day in my calendar table on the X axis.
The way it is calculated is by adding +1 for each day where the ticket isn't solved (between start and end dates) and where the status is 0. Then the average is calculated on active tickets by date.
Below an example of what I am trying to achieve :
My datamodel is as follow :
Thanks for the help.
Done
C:\Users\Io\Il mio Drive\Cartelle Condivise Support Microsoft\Avg Age
here the result
but you need to identify each ticket uniquely and label it in another column as the same ticket, here the dimension i created, you find everything in the pbix
The measure (it was tough, therefore THANK YOU, so I do not get bored with easy stuff 🙂 )
Nr Days open Tickets =VAR MaxDate =MAX ( 'Calendar'[Date] )VAR NrOfTickets =CALCULATE (DISTINCTCOUNT ( Tickets[TicketName] ),Tickets[StartDate] <= MaxDate,Tickets[Status] = 0,(Tickets[EndDate] > MaxDate|| ISBLANK ( Tickets[EndDate] )),REMOVEFILTERS ( 'Calendar'[Date] ))RETURNDIVIDE (SUMX (VALUES ( 'Calendar'[Date] ),SUMX ('Tickets dim',VAR StartDate =CALCULATE (MIN ( Tickets[StartDate] ),REMOVEFILTERS ( 'Calendar'[Date] ),Tickets[Status] = 0)VAR EndDate =CALCULATE (MIN ( Tickets[EndDate] ),REMOVEFILTERS ( 'Calendar'[Date] ),Tickets[Status] = 0)RETURNIF ('Tickets dim'[Status] = 0&& MaxDate >= StartDate&& (ISBLANK ( EndDate )|| MaxDate < EndDate),INT ( MaxDate - StartDate ) + 1))),NrOfTickets)If it is ok please give kudos and mark it as a solutionThanks!
14 Replies
- FBergamaschiSuper User
Can you provide a sample data for the Tickets table please? Data for 3 or 4 tickets will do, some with end date some without so I can reproduce and solve
best
- FBergamaschiSuper User
If you provide me a mail I can send you my pbix with my code working
- m4niResolver I
Hi Marfield
Not knowing too much about your model, but you can try this measure. It should give some idea at least...
Measure =VAR Val1 = SUM('Table'[YourValue])VAR Val2 = DISTINCTCOUNTNOBLANK('Table'[YourValue])RETURN DIVIDE(val1, Val2,0)I have mocked something based on your screenshots and have the below result...HTH
- MarfieldHelper I
I don't have column values to calculate, only the name of the ticket, the startDate and the endDate.
I tried your code with a calculated column with the value 1, I got this :
There is a link to a sample model in one of my comments if you like.
- FBergamaschiSuper User
Nr Days open Tickets =
VAR MaxDate =
MAX ( 'Calendar'[Date] )
VAR MainStartDate =
CALCULATE ( MAX ( Tickets[StartDate] ), REMOVEFILTERS ( 'Calendar' ) )
VAR NrOfTickets =
CALCULATE (
COUNTROWS ( Tickets ),
Tickets[StartDate] <= MaxDate
&& Tickets[EndDate] > MaxDate,
REMOVEFILTERS ( 'Calendar'[Date] )
)
RETURN
DIVIDE (
SUMX (
VALUES ( 'Calendar'[Date] ),
SUMX (
VALUES ( 'Tickets dim'[TicketName] ),
VAR StartDate =
CALCULATE (
MIN ( Tickets[StartDate] ),
REMOVEFILTERS ( 'Calendar'[Date] ),
Tickets[Status] = 0
)
VAR EndDate =
CALCULATE (
MIN ( Tickets[EndDate] ),
REMOVEFILTERS ( 'Calendar'[Date] ),
Tickets[Status] = 0,
NOT ISBLANK ( Tickets[EndDate] )
)
RETURN
IF (
MaxDate < EndDate
&& MaxDate >= StartDate,
INT ( MaxDate - StartDate ) + 1
)
)
),
NrOfTickets
)If it works, please give kudos and/or marka as a solution
Thanks
- MarfieldHelper I
This isn't exactly what I'm looking for unfortunately, I need to calculate each day the average age of the tickets.
On the second date on the axis, the ticket A is 2 days old and the ticket B is 1 day old, therefore, 3 days in total. I divide that by by the number of active tickets (2), so the average is 1.5