cancel
Showing results for
Did you mean:
Helper IV

## measure schedule performance

Hi,

I have projects with their Tollgate dates (ITG0, ITG0.1 etc.) which is visulized in a matrix table. I have calculated the datediff between Contract Baseline and ActualsSchedule.

Now I would like to add another measure which will indicate how well the plan is going in %.

so for example for ITG0.1

Take datediff between ITG0.1 Actual with ITG0 Actual and divide with datediff ITG0.1 contract and ITG0 contract.

continuing like this for ITG1.

Take datediff between ITG1 Actual with ITG0 Actual and divide with datediff ITG1 contract and ITG0 contract.

anyone know how to create a measure with the % Performance?

just and exaple case below

 Example 2 ITG 0 ITG 0.1 ITG 1 ITG 2 Planned Date 2022-01-01 2023-02-01 2024-03-01 2025-04-01 Actual Date 2022-01-01 2023-02-10 2024-02-25 2025-04-25 Days Variance 0 -9 5 -24 % Performance 100% 102% 99% 102%

BR

J

1 ACCEPTED SOLUTION
Community Support

Hi @jalaomar ,

Sorry for late back, I modify the formula:

``````% Performance =
DIVIDE (
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Tollgate] = "ITG 0"
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Actual Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
),
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Tollgate] = "ITG 0"
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Planned Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
)
)
``````

Get the correct result:

Best Regards,
Community Support Team _ kalyj

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

8 REPLIES 8
Community Support

Hi @jalaomar ,

According to your description, based on the snapshot you provided, I create a sample.

Here's my solution.

1.Create a calculated column.

``````Rank =
RANKX ( 'Table', 'Table'[Tollgate],, ASC, DENSE )
``````

2.Create two measures.

``````Days Variance =
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Actual Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Planned Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
)
``````
``````% Performance =
DIVIDE (
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Rank]
= MAX ( 'Table'[Rank] ) - 1
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Actual Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
),
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Rank]
= MAX ( 'Table'[Rank] ) - 1
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Planned Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
)
)
``````

Get the result:

Based on the data structure, the result is not displaying in the same struture with your expected, but the value is correct. If you want to get the expected structure, you should create a new table.

Sort the Row column by Sort column. Don't make relationship between the two tables. Then create a measure.

``````Measure =
SWITCH (
MAX ( 'Row'[Row] ),
"Actual Date",
CONVERT (
MAXX ( FILTER ( 'Table', 'Table'[Baseline] = "Actual Date" ), 'Table'[Date] ),
STRING
),
"Planned Date",
CONVERT (
MAXX ( FILTER ( 'Table', 'Table'[Baseline] = "Planned Date" ), 'Table'[Date] ),
STRING
),
"Days Variance", [Days Variance],
"% Performance", FORMAT ( [% Performance], "#%" )
)
``````

Get the expected result.

I attach my sample below for your reference.

Best Regards,
Community Support Team _ kalyj

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

Helper IV

Hello, Thanks for supporting with this.

but just found that the %Performance is not calculating as I would like to.

below you can view the expected calculation and outcome

so for each tollgate calculate the datediff = Actual ITG0 - Contract ITG0

ITG0 % Performance = Actual ITG0 / Contract ITG0

ITG0.1 % Performance = Actual ITG0.1-Actual ITG0 / Contract ITG0.1 - Contract ITG0

ITG1 % Performance = Actual ITG1-Actual ITG0 / Contract ITG1 - Contract ITG0

After each tollgate the % performance is always calculated against ITG0.

Hope you can follow what I mean. Is there a way to tweak the measure you have created a little bit?

Community Support

Hi @jalaomar ,

Sorry for late back, I modify the formula:

``````% Performance =
DIVIDE (
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Tollgate] = "ITG 0"
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Actual Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
),
DATEDIFF (
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Tollgate] = "ITG 0"
&& 'Table'[Baseline] = "Actual Date"
),
'Table'[Date]
),
MAXX (
FILTER (
ALL ( 'Table' ),
'Table'[Baseline] = "Planned Date"
&& 'Table'[Tollgate] = MAX ( 'Table'[Tollgate] )
),
'Table'[Date]
),
DAY
)
)
``````

Get the correct result:

Best Regards,
Community Support Team _ kalyj

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

Helper IV

Hi @v-yanjiang-msft is it possible to share your pbix? I can't stil not make the measure work for me.

Thanks!

Community Support

Hi @jalaomar ,

Please refer to the attached sample.

Best Regards,
Community Support Team _ kalyj

Helper IV

Hi @v-yanjiang-msft , thanks for looking into this.

but so wierd, have tried several times and i am getting the following error when trying your measure. Do you know why?

Community Support

Hi @jalaomar ,

Maybe your fact data is more complicated than my sample, you can seperately return each part in the formula to check which part can't get the correct result than dig it.

Best Regards,
Community Support Team _ kalyj

Helper IV

Will do so!

just another question in the meantime. Have created 2 measures and want to create another measure with some IF statment. so if Project Group column is "PACKAGING" then display  measure1 and if Project Group column is "Processing System" & "Processing Key Comp." then display measure 2.

Thinks it's simple solution but can't get my head around it.