Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Get Fabric certified for FREE! Don't miss your chance! Learn more
Thanks in advance for any assistance you may provide.
I have a matrix in which I would like to calculate the difference (Delta) between rows in the matrix, by column.
Data
As Of Date Error Type Date Index 07/30/2019 Error Type 1 1 07/30/2019 Error Type 1 1 07/30/2019 Error Type 1 1 07/30/2019 Error Type 2 1 07/30/2019 Error Type 2 1 07/31/2019 Error Type 1 2 07/31/2019 Error Type 1 2 07/31/2019 Error Type 1 2 07/31/2019 Error Type 1 2 07/31/2019 Error Type 1 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 07/31/2019 Error Type 2 2 08/01/2019 Error Type 1 3 08/01/2019 Error Type 1 3 08/01/2019 Error Type 1 3 08/01/2019 Error Type 1 3 08/01/2019 Error Type 1 3 08/01/2019 Error Type 1 3 08/01/2019 Error Type 2 3 08/05/2019 Error Type 1 4 08/05/2019 Error Type 1 4 08/05/2019 Error Type 2 4 08/05/2019 Error Type 2 4 08/05/2019 Error Type 2 4 08/05/2019 Error Type 2 4 08/05/2019 Error Type 2 4 08/05/2019 Error Type 2 4
The data has several "Error Types" for each "As Of Date".
I created the Date Index column on the table for reference purposes in the Delta measure.
Date Index = RANKX('Data Errors' , 'Data Errors'[As Of Date] ,, ASC , Dense)
I created a Delta measure, but I don't know how to dynamically reference each Error Type. Note the hard refrence to "Error Type 1" (highlighted in red).
Delta =
VAR PRIOR_COUNT =
VAR CURRENT_RANK = SELECTEDVALUE('Data Errors'[Date Index])
RETURN
CALCULATE(COUNTROWS('Data Errors'),
FILTER(
FILTER(ALL('Data Errors'),'Data Errors'[Date Index]=CURRENT_RANK-1),
'Data Errors'[Error Type]="Error Type 1"))
RETURN
COUNTROWS('Data Errors') - PRIOR_COUNT
Matrix (The second matrix to the right is to show the totals without a total for the Delta column.)
The Delta column is correct for only the Error Type 1 column, because that is hardcoded into the measure.
Can, and will, someone please help me dynamically reference the Error Type in my measure so I can have a delta column for each Error Type in my table?
Solved! Go to Solution.
Hi @Anonymous ,
To what I can understand from you question you want to have the result of the difference from one day to the other, believe that you don't need to have a rankx columns, try the following code:
Delta without RANK =
VAR PRIOR_COUNT =
CALCULATE (
COUNTROWS ( 'Data Errors' );
FILTER (
ALL ( 'Data Errors'[As Of Date] );
'Data Errors'[As Of Date]
= MAXX (
FILTER (
ALL ( 'Data Errors'[As Of Date] );
'Data Errors'[As Of Date] < MAX ( 'Data Errors'[As Of Date] )
);
'Data Errors'[As Of Date]
)
)
)
RETURN
COUNTROWS ( 'Data Errors' ) - PRIOR_COUNT
When you add the error type on the columns this will give context to your measure.
Using the measure you have you need to redo it to:
Delta =
VAR PRIOR_COUNT =
VAR CURRENT_RANK = SELECTEDVALUE('Data Errors'[Date Index])
RETURN
CALCULATE(COUNTROWS('Data Errors');
FILTER(
FILTER(ALL('Data Errors');'Data Errors'[Date Index] = CURRENT_RANK-1);
'Data Errors'[Error Type]=SELECTEDVALUE('Data Errors'[Error Type])))
RETURN
COUNTROWS('Data Errors') - PRIOR_COUNT
The highleted part is the one that you had hardcoded.
As you can see both results are the same.
Regards,
MFelix
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHi @Anonymous ,
To what I can understand from you question you want to have the result of the difference from one day to the other, believe that you don't need to have a rankx columns, try the following code:
Delta without RANK =
VAR PRIOR_COUNT =
CALCULATE (
COUNTROWS ( 'Data Errors' );
FILTER (
ALL ( 'Data Errors'[As Of Date] );
'Data Errors'[As Of Date]
= MAXX (
FILTER (
ALL ( 'Data Errors'[As Of Date] );
'Data Errors'[As Of Date] < MAX ( 'Data Errors'[As Of Date] )
);
'Data Errors'[As Of Date]
)
)
)
RETURN
COUNTROWS ( 'Data Errors' ) - PRIOR_COUNT
When you add the error type on the columns this will give context to your measure.
Using the measure you have you need to redo it to:
Delta =
VAR PRIOR_COUNT =
VAR CURRENT_RANK = SELECTEDVALUE('Data Errors'[Date Index])
RETURN
CALCULATE(COUNTROWS('Data Errors');
FILTER(
FILTER(ALL('Data Errors');'Data Errors'[Date Index] = CURRENT_RANK-1);
'Data Errors'[Error Type]=SELECTEDVALUE('Data Errors'[Error Type])))
RETURN
COUNTROWS('Data Errors') - PRIOR_COUNT
The highleted part is the one that you had hardcoded.
As you can see both results are the same.
Regards,
MFelix
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHi @MFelix ,
Thanks so much. You're brilliant!! It worked perfectly... once I replaced your semicolons with commas. ![]()
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 69 | |
| 59 | |
| 47 | |
| 20 | |
| 15 |
| User | Count |
|---|---|
| 106 | |
| 102 | |
| 38 | |
| 27 | |
| 27 |