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!Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
Dear all,
I am curious, wheter this is possible.
Within calculated measure I am trying to calculate alternative results depending on the dimension. Let me explain on an demo/example:
I have got Table:
| Item | Amount | Month |
| EBIT | 1 | Jan |
| EBIT | 2 | Feb |
| EBIT | 1 | Mar |
| Revenue | 20 | Jan |
| Revenue | 20 | Feb |
| Revenue | 40 | Mar |
| EBIT% | 0,05 | Jan |
| EBIT% | 0,1 | Feb |
| EBIT% | 0,25 | Mar |
Sum Amount = SUM('Table'[Amount]) returns sums as expected. However for EBIT% I can NOT use Sum. I do need to substitute Sum with (Sum of EBIT / Sum of Revenue). So I tried:
Measure1 = SUMX('Table'; IF('Table'[Item] <> "EBIT%"; CALCULATE(SUM('Table'[Amount])); CALCULATE(SUM('Table'[Amount]); 'Table'[Item] = "EBIT") / CALCULATE(SUM('Table'[Amount]); 'Table'[Item] = "Revenue")))
BUT it returns null for EBIT%:
It looks like Filters in CALCULATE do not work as expected or I do have some mistake.
Any Ideas?
Rem.: I know, I can create separate measure for EBIT%, however I do need to put all 3 Measures (Revenue / EBIT / EBIT% into one colum, like displayed above.
Thanks lot for your support.
Solved! Go to Solution.
Try using the below measure:
Measure = SWITCH(TRUE(),
MAX(Table1[Item]) = "EBIT", SUM(Table1[Amount]),
MAX(Table1[Item])= "EBIT%",CALCULATE(SUM(Table1[Amount]),Table1[Item] = "EBIT")/CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"),
CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"))
HYG. I calculated EBIT% as a variable and used Format function to change the format 🙂
Measure =
var EB = CALCULATE(SUM(Table1[Amount]),Table1[Item] = "EBIT")/CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue")
return
SWITCH(TRUE(),
MAX(Table1[Item]) = "EBIT", SUM(Table1[Amount]),
MAX(Table1[Item])= "EBIT%",FORMAT(EB,"Percent"),
CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"))
Try using the below measure:
Measure = SWITCH(TRUE(),
MAX(Table1[Item]) = "EBIT", SUM(Table1[Amount]),
MAX(Table1[Item])= "EBIT%",CALCULATE(SUM(Table1[Amount]),Table1[Item] = "EBIT")/CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"),
CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"))
G8! many thanks.
So the "magic" is, if I need to refer to dimension within IF/SWICH condition, I need to pack the dimension into function.
Btw. also this works:
Measure 3 = SWITCH(TRUE();
MAX('Table'[Item])= "EBIT%"; CALCULATE(SUM('Table'[Amount]); 'Table'[Item] = "EBIT")/CALCULATE(SUM('Table'[Amount]); 'Table'[Item]="Revenue");
CALCULATE(SUM('Table'[Amount])))and wit IF as well:
MeasureIF = IF(MAX('Table'[Item])= "EBIT%";
CALCULATE(SUM('Table'[Amount]); 'Table'[Item] = "EBIT")/CALCULATE(SUM('Table'[Amount]);'Table'[Item]="Revenue");
CALCULATE(SUM('Table'[Amount])))
Thanks a lot.
R.
You are right! I thought you need to use the amount of Revenue when you don't select EBIT or EBIT% and that's why I used Switch ()
yes. thanks.
One related question came to my mind: now I have results in one table:
Item Measure
EBIT 4
Revenue 80
EBIT % 0.4
Is there a trick, to get %-sign for EBIT %?
Means:
Item Measure
EBIT 4
Revenue 80
EBIT % 0.4%
Thx.
HYG. I calculated EBIT% as a variable and used Format function to change the format 🙂
Measure =
var EB = CALCULATE(SUM(Table1[Amount]),Table1[Item] = "EBIT")/CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue")
return
SWITCH(TRUE(),
MAX(Table1[Item]) = "EBIT", SUM(Table1[Amount]),
MAX(Table1[Item])= "EBIT%",FORMAT(EB,"Percent"),
CALCULATE(SUM(Table1[Amount]),Table1[Item]="Revenue"))
Works lika a charm.
Many thanks for your support.
R.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the February 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 50 | |
| 49 | |
| 35 | |
| 15 | |
| 14 |
| User | Count |
|---|---|
| 92 | |
| 75 | |
| 41 | |
| 26 | |
| 25 |