Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago
Solved

Classification count by Product Range

Hi

I need DAX Formula product count based on sales amount criteria, Total Sales 6,069,725 * 70% , 20%, 10% for AIR 

example, total product for AIR = 18 then

70% sales by product count = 10,

20 % sales by product count = 5,

10 % sales by product count = 3 however total product AIR is 18 we can't calculate extact sales % to get count as approx is fine.

 

result - if we create table Type and Class and drill down vehicle type, class it will show next level

TYPECLASS
AIR 
EXCELLENT10
V GOOD5
GOOD3
CIRCLE 
EXCELLENT---
V GOOD---
GOOD---

 

 

TABLE Sample :

YYYY-QQTypeVEHICLE TYPEProductSales
2025-Q3AIRBUSURO2316367
2025-Q3AIRBUSFLUID810661
2025-Q3AIRBUSMODULAR806755
2025-Q3AIRBUSSTAR DRIVE598993
2025-Q3AIRBUSVOLVO DING297975
2025-Q3AIRAUTOSTARKE284632
2025-Q3AIRBUSBRAKE265213
2025-Q3AIRBUSATE BRAKE176020
2025-Q3AIRAUTOVALUE160033
2025-Q3AIRAUTOMYCLE74204
2025-Q3AIRAUTOAXLE72967
2025-Q3AIRAUTOCROSSMEMBER71564
2025-Q3AIRBUSABE BRAKE56314
2025-Q3AIRBUSSYSTEM DUALBUS47852
2025-Q3AIRBUSLITTAL15132
2025-Q3AIRAUTOTIMING BELT7649
2025-Q3AIRAUTOVALEO7394
2025-Q3AIRAUTODASHBOARD STEREO0
2025-Q3CIRCLECARSWIFT SERIES2969589
2025-Q3CIRCLECARSERIES  PART946618
2025-Q3CIRCLECAROEC583680
2025-Q3CIRCLECARHORN PART548844
2025-Q3CIRCLECARTABLE PART323616
2025-Q3CIRCLECARELITE STONG48748
  • Hi Anonymous 


    Thank you for reaching out to the Microsoft Fabric community. And thank you lbendlin and Elena_Kalina for sharing helpful insights.
     

    We have implement a combination of calculated columns and a measure within the dataset. The classification logic categorizes products into EXCELLENT, V GOOD, and GOOD tiers based on their contribution to total sales, with thresholds at 70%, 90%, and 100% respectively.

    --------Measures-------
    
    TotalSalesPerType = 
    CALCULATE(
        SUM('SalesData'[Sales]),
        ALLEXCEPT('SalesData', 'SalesData'[Type])
    )
    -----------------
    Product Count = DISTINCTCOUNT('SalesData'[Product])
    
    ---Calculated Columns---
    
    CumulativeSales = 
    CALCULATE(
        SUM('SalesData'[Sales]),
        FILTER(
            'SalesData',
            'SalesData'[Type] = EARLIER('SalesData'[Type]) &&
            'SalesData'[Sales] >= EARLIER('SalesData'[Sales])
        )
    )
    
    ------------------------------
    
    CumulativePercent = 
    DIVIDE('SalesData'[CumulativeSales], [TotalSalesPerType])
    
    ------------------------------
    
    Classification = 
    SWITCH(
        TRUE(),
        'SalesData'[CumulativePercent] <= 0.7, "EXCELLENT",
        'SalesData'[CumulativePercent] <= 0.9, "V GOOD",
        "GOOD"
    )
    
    


    Please refer to the attached .pbix file for a working example and review the implementation.

    I hope this information proves helpful. If not, please feel free to share additional details, and we will be happy to assist you further.

    Regards,
    Karpurapu D,
    Microsoft Fabric Community Support Team.

5 Replies

  • Sounds like you want a Pareto.  There are built-in functions in DAX like PERCENTILEX  that can get you there.  Have you tried these?

  • Hi Anonymous 

    Cteate a calculate column

    Tier Simplified = 
    VAR CurrentType = 'Table'[Type]
    VAR CurrentProductSales = 'Table'[Sales]
    
    // 1. Get total sales for the type
    VAR TotalSalesByType =
        CALCULATE(
            SUM('Table'[Sales]),
            FILTER(
                ALL('Table'),
                'Table'[Type] = CurrentType
            )
        )
    
    // 2. Determine product's contribution percentage
    VAR SalesShare = CurrentProductSales / TotalSalesByType
    
    // 3. Categorize (adjust thresholds as needed)
    RETURN
        SWITCH(
            TRUE(),
            SalesShare >= 0.05, "EXCELLENT",  // Top products (70% of sales)
            SalesShare >= 0.01, "V GOOD",     // Medium products (20% of sales)
            "GOOD"                           // Others (10% of sales)
        )

    You can then rename this value as "Class" in the visual

     

    If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it! 

    Thank you.

  • v-karpurapud's avatar
    v-karpurapud
    Community Support

    Hi Anonymous 


    Thank you for reaching out to the Microsoft Fabric community. And thank you lbendlin and Elena_Kalina for sharing helpful insights.
     

    We have implement a combination of calculated columns and a measure within the dataset. The classification logic categorizes products into EXCELLENT, V GOOD, and GOOD tiers based on their contribution to total sales, with thresholds at 70%, 90%, and 100% respectively.

    --------Measures-------
    
    TotalSalesPerType = 
    CALCULATE(
        SUM('SalesData'[Sales]),
        ALLEXCEPT('SalesData', 'SalesData'[Type])
    )
    -----------------
    Product Count = DISTINCTCOUNT('SalesData'[Product])
    
    ---Calculated Columns---
    
    CumulativeSales = 
    CALCULATE(
        SUM('SalesData'[Sales]),
        FILTER(
            'SalesData',
            'SalesData'[Type] = EARLIER('SalesData'[Type]) &&
            'SalesData'[Sales] >= EARLIER('SalesData'[Sales])
        )
    )
    
    ------------------------------
    
    CumulativePercent = 
    DIVIDE('SalesData'[CumulativeSales], [TotalSalesPerType])
    
    ------------------------------
    
    Classification = 
    SWITCH(
        TRUE(),
        'SalesData'[CumulativePercent] <= 0.7, "EXCELLENT",
        'SalesData'[CumulativePercent] <= 0.9, "V GOOD",
        "GOOD"
    )
    
    


    Please refer to the attached .pbix file for a working example and review the implementation.

    I hope this information proves helpful. If not, please feel free to share additional details, and we will be happy to assist you further.

    Regards,
    Karpurapu D,
    Microsoft Fabric Community Support Team.

    • Anonymous's avatar
      Anonymous
      Not applicable

      v-karpurapud 

      fantastic and really support me to sort out the solution.

       

      steps you explained in DAX and really amazing .. awesome, Thank you

      • v-karpurapud's avatar
        v-karpurapud
        Community Support

        Hi Anonymous 

        I'm happy it was useful for you. If you have any questions,please feel free to reach out.


        Regards, 
        Karpurapu D.