Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
9 years ago
Solved

Distinct count rows that are not blank!

Hey everyone,

How can I count all the distinct values in a column except the blank(null) values? I tried several things but nothing works.

 

  • Anonymous's avatar
    Anonymous
    9 years ago

    =calculate( distinctcount(MyTable[MyColumn]), MyTable[MyColumn] <> BLANK())

     

11 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    =calculate( distinctcount(MyTable[MyColumn]), MyTable[MyColumn] <> BLANK())

     

    • XMonsterX's avatar
      XMonsterX
      Icon for Advocate II rankAdvocate II

      Good solution...

       

      One issue.. It if you have duplicate values it counts it as one. For example, if my table column is what people chose as a favorite animal, it would have a lot of people choosing dogs. There would be for example 50 dogs, but this formula would count the 50 instances of "Dog" as one. (Just a simple example). If there's 50, you want the count to reflect that.

       

      MeasureHappy = calculate(count(MyTable[MyColumn]), MyTable[MyColumn] <> BLANK())

       

      Changing from distinctcount, to just plainly count will resolve this, for anyone not looking to count dups as a singular. (If you want a zero instead of null

       

      MeasureHappy = calculate(count(MyTable[MyColumn]), MyTable[MyColumn] <> BLANK()) + 0

       

      Happy Intellegence

      David

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks a lot!!! :)

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hey Anonymous

      If the distinctcount of a column is equal to zero then distinctcount returns BLANK(null). Can I fix this to show 0 instead of null?

      • Oxenskiold's avatar
        Oxenskiold
        Icon for Advocate I rankAdvocate I

        Hi Anonymous,

         

        you can use this:

         

        =
        CALCULATE ( DISTINCTCOUNT ( MyTable[MyColumn] ), MyTable[MyColumn] <> BLANK () ) + 0

         <Blank> + 0 equals 0

         

        Kind regards

        Oxenskiold

  • Doesn't look like this has been updated in a while. While the solution does in fact work, you now have the option of DISTINCTCOUNTNOBLANK
    ie.

    DIAD Count =
    VAR _TheCount = CALCULATE
    (
    DISTINCTCOUNTNOBLANK('Equity Accounts'[DAID])
    )
    RETURN
    IF(ISBLANK(_TheCount),0,_TheCount)
     
     
    Just thought I'd share for anyone searching out there.
  • Great work and thank you! Seems like not counting the blanks would be implied.  Yet another reason I'm having a hard time converting from MD to tabular

  • Anonymous's avatar
    Anonymous
    Not applicable

    any ways that doesn't require dax measure? purpose is, measure is not considered in drill through function