March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
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
Solved! Go to Solution.
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.
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.
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?
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.
Hi @v-yanjiang-msft is it possible to share your pbix? I can't stil not make the measure work for me.
Thanks!
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?
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
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.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
User | Count |
---|---|
90 | |
89 | |
85 | |
73 | |
49 |
User | Count |
---|---|
167 | |
147 | |
92 | |
70 | |
58 |