Forum Discussion

karkar's avatar
karkar
Helper III
9 years ago

DAX

Hello,

 

I am trying to flag patients who had been given a medicine within 48 hours of admission.

 

Any suggestions are highly appreciated.

 

Count = DISTINCTCOUNT(query[24hourflag])-1

Example:

ID               Admittime                        MEDTIME                     24hourflag

101            01JAN2017 :1AM            01JAN2017 :11PM        101   

101           01JAN2017 :1AM            02JAN2017 :6AM           blank

102          08JAN2017:5PM              11JAN2017:5PM            blank  

 

 

Thanks

5 Replies

  • Sean's avatar
    Sean
    Community Champion

    karkar

    DISTINCTCOUNT counts ALL blanks as 1 distinct value

    To get rid of the -1 use this measure instead

     

    Measure =
    CALCULATE (
        DISTINCTCOUNT ( query[24hourflag] ),
        FILTER ( query, query[24hourflag] <> BLANK () )
    )
    • karkar's avatar
      karkar
      Helper III

      Thanks Sean, I will use the filter next time.

      But can you explain what the -1 is doing in our previous formulae?

       

      Thanks

      • Sean's avatar
        Sean
        Community Champion

        karkar

        Okay =>DISTINCTCOUNT counts ALL blanks as 1 distinct value

         

        This means ALL Rows in the [24Hourflag] Column that are BLANK will count as 1 => meaning this 1 will be added to the Total

         

        Say you have 5 distinct non-blank values  => your formula without the -1 will return 6

         

        because 5 distinct non blank + 1 for all blanks

         

        so the - 1 deducts the blanks

         

        Does this make sense? :smileyhappy:

         

        EDIT:

        Look at the picture....

        DISTINCTCOUNT will return 3

        without - 1 or the FILTER function filtering out the blanks