Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
cashcrane
Frequent Visitor

Issue with Conditional Measure Removing Category from Matrix Visual

Hi everyone,

I'm facing an issue with a conditional measure in my Power BI matrix visual where a specific category ("Site (Cost / Acre)") gets removed when applying dynamic calculations. Here are the details:

Data Structure:

I have a table called Metrics with the following columns:

  • Index
  • Group1
  • Group2
  • Category
  • Project Name (Projects A through F)
  • Value
  • BLS Value
  • CCI Value
  • CurrentValue
  • Factor
  • IsNumeric

Matrix Visual Setup:

  • Rows: Group1, Group2, Category
  • Columns: Project Name
  • Values: Normalized_Values (measure described below)

Measures:

NormalizedValue_Measure:

DAX
 

 

NormalizedValue_Measure = 
IF(
    OR(
        SELECTEDVALUE(Metrics[Group1]) = "07. Project Cost (Original)", 
        SELECTEDVALUE(Metrics[Group1]) = "08. Total"
    ),
    SUMX(Metrics, Metrics[CombinedFactor] * Metrics[IsNumeric]),
    SUMX(Metrics, Metrics[IsNumeric])
)

 

  • Sitework_Normalized:

    DAX
     

 

Sitework_Normalized = 
CALCULATE(
    [NormalizedValue_Measure],
    Metrics[Category] = "200 Sitework"
)

 

  • Sitework_Acres:

    DAX
     

 

Sitework_Acres = 
CALCULATE(
    SUM(Metrics[IsNumeric]), 
    Metrics[Category] = "Site - Acres"
)

 

  • Normalized_Values:

    DAX
     

 

Normalized_Values = 
IF(
    SELECTEDVALUE(Metrics[Category]) = "Site (Cost / Acre)",
    DIVIDE([Sitework_Normalized], [Sitework_Acres], 0),
    [NormalizedValue_Measure]
)

 

Issue:

When I place the Normalized_Values measure in the matrix, the row for "Site (Cost / Acre)" gets removed. This happens no matter how I adjust the conditional logic in the measure. I've tried variations using SWITCH, HASONEVALUE, ISFILTERED, and REMOVEFILTERS, but the category still disappears when it should be present.

I need the measure to:

  • Calculate Sitework_Normalized / Sitework_Acres when the category is "Site (Cost / Acre)"
  • Otherwise, return NormalizedValue_Measure
  • Ensure that "Site (Cost / Acre)" remains visible in the matrix

Any guidance on how to resolve this issue would be greatly appreciated!

1 ACCEPTED SOLUTION
pborah
Impactful Individual
Impactful Individual

Thank you @cashcrane , let's break it down now.

 

  • You said that the Normalized_Values is what causing Site(Cost/Acre) to go blank. Do any of the conditions in that measure -
    • [Group1] = "07. Project Cost (Original), or
    • [Group1] = "08. Total" , have corresponding data for the column Site?
  • Additionally, are the other measures that you calculated and are throwing into the matrix table, limiting the scope of data that the measure Normalized_Values works on?

Usually these issues arise from what you have in the data and not necessarily because of incorrect DAX. So I would start there. However that is not to say that once you figure out what your data is on a row by row level, your DAX code wont change.

View solution in original post

5 REPLIES 5
pborah
Impactful Individual
Impactful Individual

Thank you @cashcrane , let's break it down now.

 

  • You said that the Normalized_Values is what causing Site(Cost/Acre) to go blank. Do any of the conditions in that measure -
    • [Group1] = "07. Project Cost (Original), or
    • [Group1] = "08. Total" , have corresponding data for the column Site?
  • Additionally, are the other measures that you calculated and are throwing into the matrix table, limiting the scope of data that the measure Normalized_Values works on?

Usually these issues arise from what you have in the data and not necessarily because of incorrect DAX. So I would start there. However that is not to say that once you figure out what your data is on a row by row level, your DAX code wont change.

Groups 07 and 08 do not contain data corresponding to Category = "Site (Cost / Acre)". The other measures do not limit the scope, they simply are used to create the factor in order to normalize the values based on selections in some slicers. 

However, I am going to accept this as a solution because I have now realized the new Cost / Acre can also be multiplied by the factor because it is the same as multiplying the cost by the factor and then dividing by acerage. Props to me for ignoring basic algebra and assuming a complex solution was needed. 
Thanks for attempting to help!


pborah
Impactful Individual
Impactful Individual

Thank you very much. Glad I was able to point things out.

pborah
Impactful Individual
Impactful Individual

As a very simple solution first, can you right click "Category" in your rows card and select "Show items with no data"?

I tried that and it does show the category now (see image)

cashcrane_1-1729272992778.png

However you can see via the original matrix that there are values there before changing the measure:

cashcrane_2-1729273079589.png

 

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.