cancel
Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Reply
prab
Microsoft
Microsoft

Measure to return 0(zero) if distinct count is blank

Need some help from the community. 

 

I am trying to get the count of programs for each month (date as lastdayofthemonth) with target as above. However if for any month, there are no program with target as 'Above' then the measure should return 0. 

 

Measure = CALCULATE(DISTINCTCOUNT('Table'[Program]),'Table'[Target (Below/Above)]="Above")
In the "Month wise Above" visual want see "Friday January 31" as 0,  
 

image.png

Sample data

 

MonthYearProgramLocationProjectTarget (Below/Above)LastdayofMonth
1/1/2020ABCHydp1below1/31/2020
1/1/2020XYZHydp2below1/31/2020
1/1/2020TEST1Hydp1below1/31/2020
1/1/2020ABCHydp2below1/31/2020
1/1/2020XYZHydp2below1/31/2020
1/1/2020cb1blrp2within1/31/2020
1/1/2020dumblrp2within1/31/2020
1/1/2020vixblrp2within1/31/2020
1/1/2020bullblrp2within1/31/2020
12/1/2019ABCHydp1below12/31/2019
12/1/2019XYZHydp2below12/31/2019
12/1/2019TEST1Hydp1above12/31/2019
12/1/2019ABCHydp2below12/31/2019
12/1/2019XYZHydp2below12/31/2019
12/1/2019cb1blrp2within12/31/2019
12/1/2019dumblrp2below12/31/2019
12/1/2019vixblrp2within12/31/2019
12/1/2019bullblrp2within12/31/2019
11/1/2019ABCHydp1below11/30/2019
11/1/2019XYZHydp2below11/30/2019
11/1/2019TEST1Hydp1within11/30/2019
11/1/2019ABCHydp2above11/30/2019
11/1/2019XYZHydp2below11/30/2019
11/1/2019cb1blrp2within11/30/2019
11/1/2019dumblrp2below11/30/2019
11/1/2019vixblrp2within11/30/2019
11/1/2019bullblrp2within11/30/2019
1 ACCEPTED SOLUTION

Your source data doesn't have an "Above" record for Jan 31, 2020.  The measure will return "0" with no issue, but your data table doesn't have a row with "Above" on it to provide any filter context for the measure to work.

 

You may want to create a Dimension table with Above, Below, and Within, and use that table to populate your visuals, creating a One-To-Many to your Fact table, then everything will have an Above/Below/Within, and the measure would then work.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

View solution in original post

7 REPLIES 7
farid_0709
Frequent Visitor

@amitchandak why you have used +0 at the end of Distinctcount?

prab
Microsoft
Microsoft

Thank You @edhans for quick solution. 

 

However the measure works unitl the Target is not added to the table visual.

Below in the highlighted Visual count for "Above" is missng for January. 

Is there a way to fix this.

 

Thank Again. 

 

image.png

Your source data doesn't have an "Above" record for Jan 31, 2020.  The measure will return "0" with no issue, but your data table doesn't have a row with "Above" on it to provide any filter context for the measure to work.

 

You may want to create a Dimension table with Above, Below, and Within, and use that table to populate your visuals, creating a One-To-Many to your Fact table, then everything will have an Above/Below/Within, and the measure would then work.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Thank You @edhans it works..

 

 

Great @prab. Glad it works for you.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
amitchandak
Super User
Super User

try

Measure = CALCULATE(DISTINCTCOUNT('Table'[Program]),'Table'[Target (Below/Above)]="Above")+0

edhans
Super User
Super User

If your measure is correctly returning what you want, and the issue is if it returns blank you want it to return 0 instead, use this:

 

Measure =
VAR ProgramCount =
    CALCULATE(
        DISTINCTCOUNT( 'Table'[Program] ),
        'Table'[Target (Below/Above)] = "Above"
    )
RETURN
    IF(
        ProgramCount = BLANK(),
        0,
        ProgramCount
    )

 

It simply says if ProgramCount (which is your measure in the VAR statement) is blank, return 0, otherwise the value of ProgramCount.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Helpful resources

Announcements
PBI November 2023 Update Carousel

Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

Community News

Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

Power BI Fabric Summit Carousel

The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors