Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Hi! I have a table with date, income statement categories and values. The table looks like below:
| date | category | value |
| 2023-01-01 | margin | 1000 |
| 2023-01-01 | income | 3000 |
| 2023-01-01 | percentage margin | |
| 2023-01-02 | margin | 1200 |
| 2023-01-02 | income | 5000 |
| 2023-01-02 | percentage margin |
I made a measure to create income statement:
statement =
SWITCH(
SELECTEDVALUE(table_name[category]),
"percentage margin", [margin] / [income],
SUM(table_name[value])
)
[margin] = CALCULATE(SUM(table_name[value]), table_name[category] = "margin")
[income] = CALCULATE(SUM(table_name[value]), table_name[category] = "income")
Unfortunately, as a result, I have an empty value under the "percentage margin" category.
The function only worked when I created a separate table with categories with no relation to the table with values. Then the measure looked like this:
statement =
SWITCH(
SELECTEDVALUE(table_name_2[category]),
"margin", [margin],
"percentage margin", [margin] / [income],
"income", [income]
)
But it isn't an option because the real table has much more categories and referring to each one slows down the entire visualization greatly.
I have no idea what could be wrong, that's why I'm asking for help or some advice.
Hi @jkoclejda ,
Has your problem been solved? If the problem has been solved you can mark the reply for the standard answer to help the other members find it more quickly. If not, please point it out. Thanks in advance.
Best Regards,
Neeko Tang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @jkoclejda
Using a DIVIDE function will return a blank value if the denominator is zero or empty, which is a better approach than using the / operator sign.
Please try the following:
statement =
SWITCH(
SELECTEDVALUE(table_name[category]),
"percentage margin", DIVIDE([margin], [income]),
SUM(table_name[value])
)
[margin] = CALCULATE(SUM(table_name[value]), table_name[category] = "margin")
[income] = CALCULATE(SUM(table_name[value]), table_name[category] = "income")
================= OR ===================
statement =
SWITCH(
SELECTEDVALUE(table_name[category]),
"percentage margin", IF(ISBLANK([margin]) || ISBLANK([income]), BLANK(), DIVIDE([margin], [income])),
SUM(table_name[value])
)
[margin] = CALCULATE(SUM(table_name[value]), table_name[category] = "margin")
[income] = CALCULATE(SUM(table_name[value]), table_name[category] = "income")
See relevant solution on stackoverflow
Please let me know if this help.
Thanks
Babatunde Dallas
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 8 | |
| 6 | |
| 5 | |
| 4 | |
| 3 |
| User | Count |
|---|---|
| 25 | |
| 16 | |
| 8 | |
| 8 | |
| 8 |