Forum Discussion

pbrainard's avatar
pbrainard
Icon for Helper III rankHelper III
4 years ago
Solved

Unique Clients per Quarter

I have a table of clients seen, broken down by quarter. As you can see the Total is unique clients but the quarters reflect unique clients in those quarters. The numbers are a distinct count of client IDs. I only want unique visitors if they weren't seen in a previous quarter. I've got the service date connected to a calendar table. I've got a slicer for the quarters.

 

 

  • You can use this code:

     

    Count =
    VAR _PrevQuarter =
        CALCULATETABLE (
            VALUES ( Table[ClientID] ),
            DATEADD ( 'Calendar Table'[Date], -1, QUARTER )
        )
    VAR _CurrentQuarter =
        VALUES ( Table[ClientID] )
    RETURN
        IF (
            ISINSCOPE ( 'Calendar Table'[Quarter] ),
            COUNTROWS ( EXCEPT ( _CurrentQuarter, _PrevQuarter ) ),
            DISTINCTCOUNT ( Table[ClientID] )
        )
    

     

    This will provide the difference in quarters for the Quarter filter context (including the totals) and the total distincount per pooled cities on the row level and grand total. It might be worth providing an explanation to avoid false assumptions, or simply leave out the row totals altogether

5 Replies

  • PaulDBrown's avatar
    PaulDBrown
    Icon for Community Champion rankCommunity Champion

    Try:

    Count =
    VAR _PrevQuarter =
        CALCULATETABLE (
            VALUES ( Table[ClientID] ),
            DATEADD ( 'Calendar Table'[Date], -1, QUARTER )
        )
    VAR _CurrentQuarter =
        VALUES ( Table[ClientID] )
    RETURN
        COUNTROWS ( EXCEPT ( _CurrentQuarter, _PrevQuarter ) )
    
    • pbrainard's avatar
      pbrainard
      Icon for Helper III rankHelper III

      Looks to be working great for the quarters. Thank you!!! How can I get the total to aggregate across the quarters?

       

  • PaulDBrown's avatar
    PaulDBrown
    Icon for Community Champion rankCommunity Champion

    I depends how the visual is structured (dimension fields or fields from fact table)

    You will need semething alon the lines of:

     

     

    Count =
    VAR _PrevQuarter =
        CALCULATETABLE (
            VALUES ( Table[ClientID] ),
            DATEADD ( 'Calendar Table'[Date], -1, QUARTER )
        )
    VAR _CurrentQuarter =
        VALUES ( Table[ClientID] )
    VAR _Calc =
        COUNTROWS ( EXCEPT ( _CurrentQuarter, _PrevQuarter ) )
    RETURN
        SUMX (
            SUMMARIZE (
                Table,
                Table[Pooled cities],
                'Calendar Table'[Quarter],
                "_Count", _Calc
            ),
            [_Count]
        )
    

     

    Bear in mind this will just sum the values (ie the result will not be a DISTINCTCOUNT, but the sum of the distinctcounts, which I'm not sure makes any sense...)

     

    • pbrainard's avatar
      pbrainard
      Icon for Helper III rankHelper III

      Yeah, you're right, doesn't make sense. Is there a way to incorporatethe year into the original code you shared, so it only counts IDs in the year selected in another slicer?

      • PaulDBrown's avatar
        PaulDBrown
        Icon for Community Champion rankCommunity Champion

        You can use this code:

         

        Count =
        VAR _PrevQuarter =
            CALCULATETABLE (
                VALUES ( Table[ClientID] ),
                DATEADD ( 'Calendar Table'[Date], -1, QUARTER )
            )
        VAR _CurrentQuarter =
            VALUES ( Table[ClientID] )
        RETURN
            IF (
                ISINSCOPE ( 'Calendar Table'[Quarter] ),
                COUNTROWS ( EXCEPT ( _CurrentQuarter, _PrevQuarter ) ),
                DISTINCTCOUNT ( Table[ClientID] )
            )
        

         

        This will provide the difference in quarters for the Quarter filter context (including the totals) and the total distincount per pooled cities on the row level and grand total. It might be worth providing an explanation to avoid false assumptions, or simply leave out the row totals altogether