Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowThe Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.
I need to calculate in a flexible context per day:
A_prod(day 1) = A(day 1)
A_prod(day 2) = A(day 1) * A(day 2)
A_prod(day 3) = A(day 1) * A(day 2) * A(day 3)
and so on.
If [A] would be a column, I could use PRODUCT(), for example this:
Measure A_prod :=
CALCULATE(
PRODUCT('table'[A]);
FILTER(
ALLSELECTED( 'table');
'table'[date] <= MAX('table'[date])
)
)
Calculating this for each date I would be near to my target. But this will work only on a colum 'table'[A] with fixed data. And my [A] is not a columns but a measure and it's value depends on the context.
To be less abstract:
[A] := SUM([B] * [C]) / SUM ([C])
but the elements to be included into the SUM depend on the content.
I tried to use ADDCOLUMNS on a SUMMARIZE table, but the context is not used in the calculations, SUMMARIZE table seams to be the same in any context.
ProdX 3 :=
CALCULATE(
PRODUCTX (
ADDCOLUMNS ( SUMMARIZE ( 'MG_Datum_Mandant_Portfolio', 'MG_Datum_Mandant_Portfolio'[Datum] ), "TWR", [TWR_PF_BW_x_Vol_share_VT div Vol_share_VT] ),
[TWR]
);
FILTER(
ALLSELECTED( 'MG_Datum_Mandant_Portfolio');
'MG_Datum_Mandant_Portfolio'[Datum] <= MAX('MG_Datum_Mandant_Portfolio'[Datum])
)
)
--with ProdX 4 I get the same result as in ProdX 3
ProdX 4 :=
CALCULATE(
PRODUCTX (
ADDCOLUMNS ( SUMMARIZE ( ALLSELECTED('MG_Datum_Mandant_Portfolio'), 'MG_Datum_Mandant_Portfolio'[Datum] ), "TWR", [TWR_PF_BW_x_Vol_share_VT div Vol_share_VT] ),
[TWR]
);
FILTER(
ALLSELECTED( 'MG_Datum_Mandant_Portfolio');
'MG_Datum_Mandant_Portfolio'[Datum] <= MAX('MG_Datum_Mandant_Portfolio'[Datum])
)
)
y error was the wrong usage of ALLSELECTED
A good article is here: https://www.sqlbi.com/articles/the-definitive-guide-to-allselected/
I did a test with COUNT and I understand my error, need to filter ALLSELECTED only the date filter, but not the table wich context is required.
TWR_PF_BW Test01 =
CALCULATE(
COUNT('MG_Datum_Mandant_Portfolio_GroupBy'[TWR_PF_BW]);
FILTER(
ALLSELECTED( 'Datum');
'Datum'[Datum] <= MAX('Datum'[Datum])
)
)
// Try this. I wrote this blindly since I know nothing about
// what the model is and what you're really trying to achieve...
measure_ =
var __maxDate = max( 'MG_Datum_Mandant_Portfolio'[Datum] )
var __relevantDates =
FILTER(
ALLSELECTED ( 'MG_Datum_Mandant_Portfolio' ),
'MG_Datum_Mandant_Portfolio'[Datum] <= __maxDate
)
return
CALCULATE (
PRODUCTX (
ADDCOLUMNS (
VALUES( 'MG_Datum_Mandant_Portfolio'[Datum] ),
"TWR", [TWR_PF_BW_x_Vol_share_VT div Vol_share_VT]
),
[TWR]
),
__relevantDates
)
this worked for me, thanks! 😎
Sample data. Please see this post regarding How to Get Your Question Answered Quickly: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the February 2025 Power BI update to learn about new features.
User | Count |
---|---|
25 | |
12 | |
9 | |
9 | |
9 |
User | Count |
---|---|
21 | |
14 | |
14 | |
13 | |
13 |