Forum Discussion

sbalish's avatar
sbalish
Frequent Visitor
7 years ago

Distinct count total over date range

When using DISTINCTCOUNT to get total unique numbers over a date range (4 months for example)...the total count when adding up all 4 months shown on the chart is higher (incorrect) compared to the correct count (400) when just the year is shown on the chart.  Pretty sure this is becasue displaying the chart with the 4 month hierarchy forces a distinct count in each month separately so the same number gets counted multiple times if it appears in multiple months.  How can I get the chart displaying all 4 months to show the correct total (400) by only counting a number once regardless of if it's used in multiple months?  I'm not concerned about which month will show the count for numbers used in multiple months...first month it's used in is fine...just want to only count it once with no repeats. 

 

DAX used:

 

Tasks Started = CALCULATE(DISTINCTCOUNT('Tasks'[Number]))

 

Count total 417 (incorrect)Count total 400 (correct)

Thanks!

6 Replies

  • Hi,

    Assuming you have:

    1. A Calendar Table with a relationship from the Date column of your Tasks Table to the Date column of your Calendar Table
    2. In the Calendar Table there will be a Year and Month column
    3. To your visual, you have dragged Year and Month from the Calendar Table

    Write these measures

    Distinct tasks = DISTINCTCOUNT('Tasks'[Number])

    Distinct tasks final = COUNTROWS(FILTER(SUMMARIZE(VALUES('Tasks'[Number]),'Tasks'[Number],"Count since inception",CALCULATE([Distinct tasks],DATESBETWEEN(Calendar[Date],MINX(ALL(Calendar[Date]),Calendar[Date]),MAX(Calendar[Date]))),[Count since inception]=1))

    Hope this helps.

    • sbalish's avatar
      sbalish
      Frequent Visitor

      Hi! Thanks for the tip.  Yes to all 3 assumptions.  Added the Distinct Task Final measure...error popped up expecting another argument for the FILTER command...I think it needs a FilterExperssion?  Also...it was underlining the [Count since inception]=1 part at the end...do I need to add that as a new column in my table?

       

      Thanks!

      • sbalish's avatar
        sbalish
        Frequent Visitor

        I see it...needed another right ) just after the MAX(Calendar[Date] part...

         

        Distinct tasks final = COUNTROWS(FILTER(SUMMARIZE(VALUES('Tasks'[Number]),'Tasks'[Number],"Count since inception",CALCULATE([Distinct tasks],DATESBETWEEN(Calendar[Date],MINX(ALL(Calendar[Date]),Calendar[Date]),MAX(Calendar[Date])))),[Count since inception]=1))

         

        Unfortunately this measure returns the same count totals.

        Tasks Started Final (417...still incorrect)