Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Quartile Calculation

Can someone please help me to calculate   Percentage of customers that contribute the 1st quartile (top 25%) of revenue  Percentage of customers that contribute the 2nd quartile (25%-50%) of reven...
  • v-alq-msft's avatar
    5 years ago

    Hi, Anonymous 

     

    Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

    Table:

     

    Quartile:

     

    You may create a measure as below.

    Percentage = 
    var total = CALCULATE(DISTINCTCOUNT('Table'[CustomerID]),ALL('Table'))
    var tab = 
    ADDCOLUMNS(
        ALL('Table'),
        "Rank",
        RANKX(
            ALL('Table'),
            [Revenue Contribution],,ASC
        )
    )
    var newtab = 
    SUMMARIZE(
        Quartile,
        Quartile[Quartile],
        "Count",
        SWITCH(
            [Quartile],
            "quartile1",
            DIVIDE(
                COUNTROWS(
                    FILTER(
                        tab,
                        [Rank]>=1&&[Rank]<total*0.25
                    )
                ),
                total
            ),
            "quartile2",
            DIVIDE(
                COUNTROWS(
                    FILTER(
                        tab,
                        [Rank]>=total*0.25&&[Rank]<total*0.5
                    )
                ),
                total
            ),
            "quartile3",
            DIVIDE(
                COUNTROWS(
                    FILTER(
                        tab,
                        [Rank]>=total*0.5&&[Rank]<total*0.75
                    )
                ),
                total
            ),
            "quartile4",
            DIVIDE(
                COUNTROWS(
                    FILTER(
                        tab,
                        [Rank]>=total*0.75&&[Rank]<=total            )
                ),
                total
            )
        )
    )
    return
    SUMX(
        newtab,
        [Count]
    )

     

    Result:

     

    Best Regards

    Allan

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.