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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
ozlemv
Frequent Visitor

DistinctCount with filters

 

Hi everyone,

 

Hoping I could have help on the below issue.

 

I would like to calculate the distinct company ids whose actuals are higher than a fixed value (X)

 

Here's the formula I used:

 

ActivePartnerCount = IFERROR(CALCULATE( DISTINCTCOUNT(vTable1[CompanyID]),filter(vTable1,vTable1[Actuals]>X)),0)

 

If the fixed value(X) is 0, then the formulation is working, but not for other values.

 

Thanks in advance.

 

1 ACCEPTED SOLUTION

Hi @ozlemv,

You use the IFERROR function in your formula, you create a calculated column based on my understanding.

IFERROR(A,B) := IF(ISERROR(A), B, A)

The following sub-formula in your formula is right. When the vTable1[Actuals]>X is ture, it will return a value, if the value of vTable1[Actuals] is 0, it will return 0, so the formula will return 0.

CALCULATE( DISTINCTCOUNT(vTable1[CompanyID]),filter(vTable1,vTable1[Actuals]>X))


As @Mi2n posted, you will get the expected result using the solution given.

If you have any other issue, please describe it clearly and sample data for further analysis.

Best Regards,
Angelia

 

View solution in original post

5 REPLIES 5
Mi2n
Employee
Employee

My guess is, you have a calculated value for X instead of a fixed value. Is that right?

ozlemv
Frequent Visitor

Hi all,

 

Thanks for your replies.

 

Actually X is a fixed number. Let's say it's 10000. The formulation is working when X equals to zero, but not with any other number. 

Hi @ozlemv,

You use the IFERROR function in your formula, you create a calculated column based on my understanding.

IFERROR(A,B) := IF(ISERROR(A), B, A)

The following sub-formula in your formula is right. When the vTable1[Actuals]>X is ture, it will return a value, if the value of vTable1[Actuals] is 0, it will return 0, so the formula will return 0.

CALCULATE( DISTINCTCOUNT(vTable1[CompanyID]),filter(vTable1,vTable1[Actuals]>X))


As @Mi2n posted, you will get the expected result using the solution given.

If you have any other issue, please describe it clearly and sample data for further analysis.

Best Regards,
Angelia

 

Hi @ozlemv

 

How do you calculate your Fixed value 'X'?

 

Because it is fixed, you do not necessarily need filter function.

If X is fixed:

CALCULATE( DISTINCTCOUNT(vTable1[CompanyID]), vTable1[Actuals]>X) works and is exactly equivalent to

 

CALCULATE( DISTINCTCOUNT(vTable1[CompanyID]), Filter( All( vTable1[Actuals] , vTable1[Actuals]>X) )

Sean
Community Champion
Community Champion

Yes I don't see anything wrong with the Measure!

 

However I agree with @Datatouille we don't really know what X is - do you hardcode a number? If so it should work.

 

https://www.sqlbi.com/articles/filter-arguments-in-calculate/

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.