Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
JajatiDev
Helper I
Helper I

Pareto Chart with DAX Function

Hi,

This is a follow-up to my previous query.

I am trying to create a DAX function to convert the below table into a Pareto Chart.

 

x-axis: SC_TAT days

y-axis: CountOfOrderLines

 

Please assist with the DAX function that would capture the cumulative, total and percentage in one measure which can then be converted into a chart.

 

Regards,

Jajati Dev

 

SC_TAT (Days)CountOfOrderLinesCumulativeTotalPercentage
06643   
1597   
2201   
3226   
4291   
5397   
6300   
7306   
8340   
9268   
10236   
11179   
12206   
13171   
14199   
15213   
16141   
17118   
18170   
19143   
20118   
21136   
22114   
23109   
24130   
2588   
2696   
1 ACCEPTED SOLUTION
v-jayw-msft
Community Support
Community Support

Hi @JajatiDev ,

 

Please check the formulas.

Cumulative = SUMX(FILTER(ALLSELECTED('Table'),'Table'[SC_TAT (Days)]<=MAX('Table'[SC_TAT (Days)])),'Table'[CountOfOrderLines])
Total = SUMX(ALLSELECTED('Table'),'Table'[CountOfOrderLines])
Percentage = format(SUMX('Table','Table'[CountOfOrderLines])/[Total],"percent")

vjaywmsft_0-1653030580112.png

Pbix as attached.

 

Best Regards,

Jay

Community Support Team _ Jay
If this post helps, then please consider Accept it as the solution
to help the other members find it.

View solution in original post

8 REPLIES 8
LucasPete
Regular Visitor

Hi,

 

How to build a pareto chart for one column?
I have a column - "Failures", in which errors occur repeatedly. On the column chart, unique names of the failure should appear on the X axis, and on the Y axis, the number of times it repeated should appear. The pareto chart will be a line of the % occurrence of a given failure from the entire table.

 

Thanks for the help in advance

v-jayw-msft
Community Support
Community Support

Hi @JajatiDev ,

 

Please check the formulas.

Cumulative = SUMX(FILTER(ALLSELECTED('Table'),'Table'[SC_TAT (Days)]<=MAX('Table'[SC_TAT (Days)])),'Table'[CountOfOrderLines])
Total = SUMX(ALLSELECTED('Table'),'Table'[CountOfOrderLines])
Percentage = format(SUMX('Table','Table'[CountOfOrderLines])/[Total],"percent")

vjaywmsft_0-1653030580112.png

Pbix as attached.

 

Best Regards,

Jay

Community Support Team _ Jay
If this post helps, then please consider Accept it as the solution
to help the other members find it.
Whitewater100
Solution Sage
Solution Sage

Hi:

You my be looking for this version. It's on the file upload. It's more in order of day number.

Cumulated Orders V2 =
 
VAR currorders = 'Table'[SC_TAT (Days)]
return
SUMX(
FILTER('Table',
'Table'[SC_TAT (Days)] >= currorders),
'Table'[CountOfOrderLines])
 
Whitewater100_1-1652813993620.png

 

Hello:

 

Did my reply answer your initial question? Thanks..

Whitewater100
Solution Sage
Solution Sage

Hi:

I updated the calcs. Please see attached file. I hope this solves your question! Thanks.https://drive.google.com/file/d/1AmZdKZ0R0YYwGR4bpT36QFM8U_yePF7k/view?usp=sharing 

Whitewater100_0-1652813121884.png

I hope this helps!

Whitewater100
Solution Sage
Solution Sage

Hello:

You can try a couple calculated columns, after one initial measure

Measure ... Order Lines = SUM(Table[CountofOrderLines])

Cumulated Orders =
CALCULATE(
    [Order Lines] ,
    ALL( Table ),
    Table[Order Lines] >= EARLIER( Table[Order Lines ))
 
Cumulated Percentage = DIVIDE( Table[Cumulated Orders] , SUM( Table[CountofOrderLines] ) , 0 )
 
I hope this helps!
Anonymous
Not applicable

Hi jajatidev,

 

Please find attached required help,

I took your datas and saved table as Pareto.

 

After 2 measures :

cumulative =
VAR compteur =
    SELECTEDVALUE ( Pareto[SC_TAT (Days)] )
VAR result =
    CALCULATE (
        SUM ( Pareto[CountOfOrderLines] ),
        ALL ( Pareto ),
        Pareto[SC_TAT (Days)] <= compteur
    )
RETURN
    result

 

and the percentage :

cumulative percent =
VAR compteur =
    SELECTEDVALUE ( Pareto[SC_TAT (Days)] )
VAR totalorederline =
    CALCULATE ( SUM ( Pareto[CountOfOrderLines] )ALL ( pareto ) )
VAR cumulative =
    CALCULATE (
        SUM ( Pareto[CountOfOrderLines] ),
        ALL ( Pareto ),
        Pareto[SC_TAT (Days)] <= compteur
    )
VAR result =
    DIVIDE ( cumulativetotalorederline )
RETURN
    result

 

Hi James,

Thanks for the quick response.

Could you please share the .pbix file for me to review because while trying to replicate I am not getting the desired result?

 

Regards,

Jajati Dev

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors