Forum Discussion
Reuse calculated table variable within DAX formula
Hello, I have the following DAX formula for a measure, and it works fine.
Gross Area =
var as_on = LASTDATE('Calendar'[Date])
var all_latest_dates =
ADDCOLUMNS(
VALUES('Unit Revision'[Unit Id]),
"Last Event", CALCULATE(
MAX('Unit Revision'[Event Date]),
'Unit Revision'[Event Date] <= as_on
)
)
var unit_latest_dates = TREATAS(all_latest_dates, 'Unit Revision'[Unit Id], 'Unit Revision'[Event Date])
RETURN
CALCULATE( SUM('Unit Revision'[Gross Area]), unit_latest_dates )
Basically, there is a Unit Revision table that has multiple rows with values on different Event Date per Unit Id. The above DAX formula filters the most recent value given a Calendar Date Slicer, and then sums up the Gross Area value.
I need to calculate more metrics using a similar logic, where the DAX formula is the same until the RETURN statement, and just the column name within the final CALCULATE( SUM() ) differs.
I need to add all these measures to a Matrix. In such as case, will the variable calculation of the unit_latest_dates table be calculated for every DAX measure, or will it be cached? To ensure it is cached, is it possible to reuse the initial set of DAX code within a calculated table measure or something, just like how we can reuse a scalar measure in another measure?
dpc_development I think you can take advantage of Calculation groups and reuse the code by using selectedmeasure(). Check if this video helps. Using calculation groups to selectively replace measures in DAX expressions - YouTube
Check my latest blog post Comparing Selected Client With Other Top N Clients | PeryTUS I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos to whoever helped to solve your problem. It is a token of appreciation!
⚡Visit us at https://perytus.com, your one-stop-shop for Power BI-related projects/training/consultancy.⚡
2 Replies
- parry2kSuper User
dpc_development I think you can take advantage of Calculation groups and reuse the code by using selectedmeasure(). Check if this video helps. Using calculation groups to selectively replace measures in DAX expressions - YouTube
Check my latest blog post Comparing Selected Client With Other Top N Clients | PeryTUS I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos to whoever helped to solve your problem. It is a token of appreciation!
⚡Visit us at https://perytus.com, your one-stop-shop for Power BI-related projects/training/consultancy.⚡
- dpc_developmentHelper III
parry2k Thanks for the input. I know how to use calculationgroups, but do you know for a fact that using calculationgroups will reuse the initial part of the DAX formula? This question is not about reducing code size, rather about re-using already calculated table.