Forum Discussion

ozlemv's avatar
ozlemv
Frequent Visitor
9 years ago
Solved

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.

 

  • 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

     

5 Replies

  • 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) )

  • Mi2n's avatar
    Mi2n
    Microsoft Employee

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

    • ozlemv's avatar
      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. 

      • v-huizhn-msft's avatar
        v-huizhn-msft
        Microsoft Employee

        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