Dear all,
may this was a little bit too heavy for my first post
In the meantime I was luckily able to solve this complex DAX scenario on my own.
Applied Steps:
Created a disconnected table only for time intelligence data labels
Thanks to Amit Chandak (https://www.youtube.com/watch?v=cV5WfaQt6C8)
Changed DAX logic for all calculation items with two comparing timeframes (e.g. YoY, YoY %)
Avoid Bad Practise: Referencing other calculation items, instead repeat both DAX expressions
YoY =
VAR __Actual =
SELECTEDMEASURE ()
VAR __PY =
CALCULATE ( SELECTEDMEASURE (), DATEADD ( 'Calendar'[Date], -1, YEAR ) )
VAR __YOY =
IF ( NOT ISBLANK ( __Actual ) || NOT ISBLANK ( __PY ), __Actual - __PY, BLANK () )
RETURN
IF (
SELECTEDMEASURENAME ()
IN VALUES ( 'Configuration: Calculation Groups - Exclude Measures'[Exclude Measure] ),
SELECTEDMEASURE (),
__YOY
)
Thanks to Esbrina Power BI & Fabric Summit 2024: Getting started with Calculation Groups in Power BI Desktop
Increased group precedence for calculation group Time Intelligence to highest value in my semantic model
Created a new DAX measure for Time Intelligence data labels and applied it as reference label to the new slicer visual
Created a new DAX Measure for virtual filtering of my disconnected data labels table and calculation group Time Intelligence (Cascading Slicer) - used it as visual level filter
Thanks to SQLBI (https://www.sqlbi.com/articles/syncing-slicers-in-power-bi/)
Corrected Formatstring Expression and Expression for calculation items to ignore newly created DAX measures for data labels and cascading slicer
IF (
SELECTEDMEASURENAME ()
IN VALUES ( 'Configuration: Calculation Groups - Exclude Measures'[Exclude Measure] ),
SELECTEDMEASURE (),
__YOY
)
Thanks to PeryTus (Youtube)
The final solution - Amazing