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!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi Community,
I’m facing a conditional formatting issue in Power BI Paginated Reports (SSRS) and wanted to highlight it here to get inputs or confirm best practices.
I have a matrix / tablix with CUSTOM_DISPLAY_NAME as a row group.
Rows include both detail rows (Revenue, Expenses, Operating Expenses, etc.) and calculated total rows (Total Revenue, Total Expenses, Gross Margin %, Operating Margin %, etc.).
For total / margin rows, the dataset does not return a physical row, so Amount_Custom_IS becomes NULL (Nothing).
I’m applying BackgroundColor conditional formatting based on:
Row type (detail vs total)
A user-selected ColorParam parameter
When using IsNothing(Fields!Amount_Custom_IS.Value), formatting becomes unreliable because:
NULL values are produced by SSRS during rendering (not from the dataset)
Detail rows and total rows can fall into the same evaluation path
Using Fields!CUSTOM_DISPLAY_NAME.Value directly in style expressions also causes scope issues in totals/subtotals.
Even with InScope(), total rows like “Total Revenue” are still considered in the same row group scope as detail rows, so additional logic is required.
I found that the most stable approach is:
Avoid driving formatting purely by IsNothing()
Use row semantics + explicit name checks
Apply color only for specific total/margin rows
Keep all other rows white
Example pattern:
NULL values in Paginated Reports are often rendering artifacts, not actual business data
Formatting logic should be driven by row meaning, not just NULL checks
InScope() helps structurally, but still needs to be combined with row-name logic when totals exist in the same group
I wanted to share this in case others are facing similar issues with financial statements / P&L reports in Paginated Reports.
Would love to hear if there’s a cleaner or recommended pattern for handling this scenario.
Thanks in advance!
Check the Screenshot Some Values background not coming .
Solved! Go to Solution.
Hi @smit16299,
In Paginated Reports, total and margin rows like Total Revenue or Gross Margin (%) are not provided by the dataset but are generated by SSRS during rendering using group aggregates. As a result, any textbox linked to a dataset field will show as NULL for these rows. This NULL value is a rendering artifact, not missing data.
Because of this, using conditional formatting with IsNothing() is unreliable, especially when totals and detail rows are in the same row group. While InScope() can help with structure, it does not reliably identify totals in this case.
The best approach is to base formatting on the row’s purpose rather than field values. By using CUSTOM_DISPLAY_NAME or a row-type flag to specifically target total or margin rows and applying formatting at the row or static cell level, you can achieve consistent results. This method is considered best practice for financial and P&L reports.
Thank you.
Hi @smit16299,
We wanted to follow up since we haven't heard back from you regarding our last response. We hope your issue has been resolved.
If you need any further assistance, feel free to reach out.
Thank you for being a valued member of the Microsoft Fabric Community Forum!
Hi @smit16299,
This behavior is normal for Paginated Reports and isn’t caused by your expression logic. Rows like Total Revenue, Gross Margin (%), and Net Income are created by SSRS during report rendering and aren’t present in the dataset. As a result, if a textbox is linked to a field with a NULL value, SSRS might skip the BackgroundColor style, leaving cells blank or without color. To address this, avoid using IsNothing() or amount-based logic for conditional formatting. Instead, set the BackgroundColor based on row identity using CUSTOM_DISPLAY_NAME, and apply it to the row or a static header cell rather than the value cell. This ensures consistent formatting, even when the amount is NULL. For financial and P&L reports, it’s best to color only semantic total or margin rows and keep detail rows white, since NULLs in totals are just rendering artifacts and formatting should reflect row meaning, not field values.
Thank you.
Hi @smit16299,
In Paginated Reports, total and margin rows like Total Revenue or Gross Margin (%) are not provided by the dataset but are generated by SSRS during rendering using group aggregates. As a result, any textbox linked to a dataset field will show as NULL for these rows. This NULL value is a rendering artifact, not missing data.
Because of this, using conditional formatting with IsNothing() is unreliable, especially when totals and detail rows are in the same row group. While InScope() can help with structure, it does not reliably identify totals in this case.
The best approach is to base formatting on the row’s purpose rather than field values. By using CUSTOM_DISPLAY_NAME or a row-type flag to specifically target total or margin rows and applying formatting at the row or static cell level, you can achieve consistent results. This method is considered best practice for financial and P&L reports.
Thank you.
Hi @smit16299,
We wanted to check if you had a chance to review our last reply. Let us know if it helped or if you need more guidance, we're always happy to help further.
Looking forward to hearing from you!
Thank you.
Hello @Rufyda,
Thank you for your response.
I have now updated my background color logic in the Paginated Report based on your suggestion and I am applying conditional formatting using the row identity (CUSTOM_DISPLAY_NAME) and a ColorParam parameter, as shown below:
From the screenshots, you can see that for rows where the value is NULL (i.e., no data exists in the database), the background color is not being applied, and those cells appear blank or uncolored.
And also I only need colored in total values only not in Revenue, Expenses, etc.
Only need colored on Total Revenue, Total Expenses, Gross Margin %, etc.
Could you please advise how best to handle this scenario so that the background color is still applied consistently even when the underlying value is NULL?
Thank you in advance for your help.
Don’t rely on IsNothing() for totals — NULLs are often rendering artifacts.
Use row identity (CUSTOM_DISPLAY_NAME) or a RowType flag to detect totals/margins.
Apply BackgroundColor based on row meaning + ColorParam.
Default all other rows to white.
Example:
=IIF(
Fields!CUSTOM_DISPLAY_NAME.Value = "Total Revenue"
OR Fields!CUSTOM_DISPLAY_NAME.Value = "Gross Margin (%)",
Switch(
Parameters!ColorParam.Value = "Blue", "#FFFFFF",
Parameters!ColorParam.Value = "Orange", "#000000",
True, "#FFFFFF"
),
"White"
)
Try these solutions and let me know if you need further clarification
Regards,
Rufyda Rahma | MIE
Hello @Rufyda ,
Thank you for your response.
I have now updated my background color logic in the Paginated Report based on your suggestion and I am applying conditional formatting using the row identity (CUSTOM_DISPLAY_NAME) and a ColorParam parameter, as shown below:
From the screenshots, you can see that for rows where the value is NULL (i.e., no data exists in the database), the background color is not being applied, and those cells appear blank or uncolored.
And also I want only colored background in Total Revenue, Total Expenses, Gross Margin %, Gross Profit (Loss), etc.
Not for Revenue, Expenses, etc.
Could you please advise how best to handle this scenario so that the background color is still applied consistently even when the underlying value is NULL?
Thank you in advance for your help.
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 62 | |
| 50 | |
| 41 | |
| 20 | |
| 16 |
| User | Count |
|---|---|
| 124 | |
| 109 | |
| 47 | |
| 28 | |
| 27 |