Forum Discussion

bcardenas's avatar
bcardenas
Frequent Visitor
6 years ago
Solved

Distinct Count filter with sum

Hello,

I am a newbie trying to count Lenders w/ 4 or more certs for a year.  I am trying this formula but it does not filter >3, it just gives me a straight count.

 

Active Lenders 1 yr = CALCULATE(
DISTINCTCOUNT(Certificates[institutionID]),
FILTER(Certificates,(SUM(Certificates[Certified]) > 3)))
  • bcardenas Sorry, I didn't see that you have posted the data, you can try this:

    Total Certificate = SUM ( Certificates[certified] )

     

    Active Lenders 1 yr = 
    COUNTROWS (
        FILTER (
            SUMMARIZE ( Certificates, Certificates[InstitutionID], 'Date'[Year] ),
            [Total Certificate] > 3
        )
    )

     

    Model

8 Replies

  • you are missing the year filter, and the ALL* context modifier.

     

    Provide some sample data and expected outcome.

    • bcardenas's avatar
      bcardenas
      Frequent Visitor

      lbendlin  I would prefer to not have the year filter in the measure.

       

      Data - 

      InstitutionIDcertifiedcert_date
      111/1/2020
      112/5/2020
      112/8/2020
      113/10/2020
      211/20/2020
      211/26/2020
      213/1/2020
      314/1/2002
      111/1/2019
      112/5/2019
      112/8/2019
      113/10/2019
      211/20/2019
      211/26/2019
      213/1/2019
      213/2/2019
      314/1/2019

       

      Outcome - 

      YEARInstiution CountInst  > 3Certs
      202031
      201932
      • lbendlin's avatar
        lbendlin
        Icon for Super User rankSuper User

        "I would prefer to not have the year filter in the measure."

         

        That is impossible, as you want the year grouping in your output. 

         

        Note - there is a typo in your sample data . I guess you meant 4/1/2020 ?

         

        Here is a version that uses AntrikshSharma 's approach but does not require an external measure, and doesn't require the redundant column.

         

        GT3 = 
        var s = summarize(Certificates,Certificates[InstitutionID],Dates[Yearcode],"ct",count(Certificates[cert_date]))
        var c = countrows(filter(s,[ct]>3))
        return c

         

  • bcardenas , Try like

    Active Lenders 1 yr = countX(filter(summarize(Certificates,Certificates[Lenders],"_1", CALCULATE(
    DISTINCTCOUNT(Certificates[institutionID]))),[_1]>3),[Lenders])

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

    bcardenas Try this:

     

    Active Lenders 1 yr =
    CALCULATE (
        DISTINCTCOUNT ( Certificates[institutionID] ),
        FILTER (
            ALL ( Certificates ),
            CALCULATE ( SUM ( Certificates[Certified] ) ) > 3
        )
    )

     

    • bcardenas's avatar
      bcardenas
      Frequent Visitor

      AntrikshSharma  when I try this solution I do not get an error but the measure is blank when pulled into a report.

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

        bcardenas Sorry, I didn't see that you have posted the data, you can try this:

        Total Certificate = SUM ( Certificates[certified] )

         

        Active Lenders 1 yr = 
        COUNTROWS (
            FILTER (
                SUMMARIZE ( Certificates, Certificates[InstitutionID], 'Date'[Year] ),
                [Total Certificate] > 3
            )
        )

         

        Model