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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
cottrera
Post Prodigy
Post Prodigy

Distributed Averages

Hi , I have the following table

Unit ReferenceJob#
187712012
188029903
188322638
188322662
188452691
189302275
267689550
268691041
268700602
269250383
348251499
348251506
348252562
348471047
348532055
348536396
348633522
348633530
348645402
348817374
348821284
427545869
427545934
427545942
427856620
427900956
428090714
428582828
507036834
507207112
507289277
50

7302384

 

 

Which contains Unit references and Job numbers.   The units will normally have multiple jobs against them.  I am after a DAX function or a power query solution to score based on the number of repairs using the following criteria. 

 

ScoreCalculation
5Greater than twice above average
4Between above average and twice above average 
3Average
2Between Average and twice below average
1Between zero and twice below average
1Zero

 

thank you

 

Richard

 

1 ACCEPTED SOLUTION

Hi @cottrera ,

 

You can refer to below table expression.

 

xifeng_L_0-1715695050587.png

 

 

Score = 
VAR TempTable = ADDCOLUMNS(ALL('Table'[Unit Reference]),"Repairs",CALCULATE(COUNTROWS('Table')))
VAR AverageRepairs = ROUND(AVERAGEX(TempTable,[Repairs]),0)
VAR ScoreTable = 
    SELECTCOLUMNS(
        {
            ("Greater then twice above average",5,AverageRepairs*2+1,99999),
            ("Between above average and twice above average",4,AverageRepairs+1,AverageRepairs*2),
            ("Average",3,AverageRepairs,AverageRepairs),
            ("Between 5 and average",2,6,AverageRepairs-1),
            ("Between zero and 5",1,1,5),
            ("Zero",1,0,0)
        },
        "Score Name",[Value1],
        "Score",[Value2],
        "Min",[Value3],
        "Max",[Value4]
    )
RETURN
ADDCOLUMNS(
    TempTable,
    "Score Name",
        MAXX(FILTER(ScoreTable,[Min]<=[Repairs] && [Repairs]<=[Max]),[Score Name]),
    "Score",
        MAXX(FILTER(ScoreTable,[Min]<=[Repairs] && [Repairs]<=[Max]),[Score])
)

 

 

Demo - Distributed Averages.pbix

 

 

Did I answer your question? If yes, pls mark my post as a solution and appreciate your Kudos !

 

Thank you~

 

 

 

 

View solution in original post

6 REPLIES 6
cottrera
Post Prodigy
Post Prodigy

Hi based in this scaled down data set

Unit Reference#Repairs = COUNTROWS(Repairs)
186
264
3411
427
5019
765
922
10910
1257
1337
1414
1595
1834
19114
20830
21611
2249
23233
24022
25810
266 
29028
30716
31512
32338
34918
16606
16786
168619
17018
17199
172710
17356
174311
17515
17696
17773
17856
17933
18002
18181
18266
183410
18426
18506
186815
18764
18841
189210
190910
191718
192518
193323
194112
195912
197518
19839
19918
201415
202217
20303
204824
206454
20722
210513
21136
21215
214718
216340
217117
21892
219733
22043
221221
222010
22381
230329
232925
233711
234521
238719
239510
240213
241022
24365
244427
245219
247815
24869
249439
250137
251912
25275
2543 
2551 
25696
25771
25855
25935
26502
266810
267652
26848
26923
27172
275913
276723
27758
27839
28085
297314
29991
300416
301227
30204
30386
304646
30549
30623
307024
308856
30966
31036
31117
312924
31372
31453
315329
31614
31799
318722
319513
322816
32361
32444
325215
32607
32789
329434
330117
33275
335123
336915
33772
338511
339312
34001
341820
342610
34344
34423
34502
34681
347617
348413
34924
350910

 When added to the table I would expect the following results

Unit ReferenceRepairsScore NameScore
186Between 5 and average2
264Between above average and twice above average 4
3411Between 5 and average2
427Between 5 and average2
5019Between above average and twice above average 4
765Between zero and 51
922Between zero and 51
10910Between 5 and average2
1257Between 5 and average2
1337Between 5 and average2
1414Between zero and 51
1595Between zero and 51
1834Between zero and 51
19114Between above average and twice above average 4
20830Greater than twice above average5
21611Between 5 and average2
2249Between 5 and average2
23233Greater than twice above average5
24022Between above average and twice above average 4
25810Between 5 and average2
266 Zero1
29028Greater than twice above average5
30716Between above average and twice above average 4
31512Between 5 and average2
32338Greater than twice above average5
34918Between above average and twice above average 4
16606Between 5 and average2
16786Between 5 and average2
168619Between above average and twice above average 4
17018Between 5 and average2
17199Between 5 and average2
172710Between 5 and average2
17356Between 5 and average2
174311Between 5 and average2
17515Between zero and 51
17696Between 5 and average2
17773Between zero and 51
17856Between 5 and average2
17933Between zero and 51
18002Between zero and 51
18181Between zero and 51
18266Between 5 and average2
183410Between 5 and average2
18426Between 5 and average2
18506Between 5 and average2
186815Between above average and twice above average 4
18764Between zero and 51
18841Between zero and 51
189210Between 5 and average2
190910Between 5 and average2
191718Between above average and twice above average 4
192518Between above average and twice above average 4
193323Between above average and twice above average 4
194112Between 5 and average2
195912Between 5 and average2
197518Between above average and twice above average 4
19839Between 5 and average2
19918Between 5 and average2
201415Between above average and twice above average 4
202217Between above average and twice above average 4
20303Between zero and 51
204824Between above average and twice above average 4
206454Greater than twice above average5
20722Between zero and 51
210513Average3
21136Between 5 and average2
21215Between zero and 51
214718Between above average and twice above average 4
216340Greater than twice above average5
217117Between above average and twice above average 4
21892Between zero and 51
219733Greater than twice above average5
22043Between zero and 51
221221Between above average and twice above average 4
222010Between 5 and average2
22381Between zero and 51
230329Greater than twice above average5
232925Between above average and twice above average 4
233711Between 5 and average2
234521Between above average and twice above average 4
238719Between above average and twice above average 4
239510Between 5 and average2
240213Average3
241022Between above average and twice above average 4
24365Between zero and 51
244427Greater than twice above average5
245219Between above average and twice above average 4
247815Between above average and twice above average 4
24869Between 5 and average2
249439Greater than twice above average5
250137Greater than twice above average5
251912Between 5 and average2
25275Between zero and 51
2543 Zero1
2551 Zero1
25696Between 5 and average2
25771Between zero and 51
25855Between zero and 51
25935Between zero and 51
26502Between zero and 51
266810Between 5 and average2
267652Greater than twice above average5
26848Between 5 and average2
26923Between zero and 51
27172Between zero and 51
275913Average3
276723Between above average and twice above average 4
27758Between 5 and average2
27839Between 5 and average2
28085Between zero and 51
297314Between above average and twice above average 4
29991Between zero and 51
300416Between above average and twice above average 4
301227Greater than twice above average5
30204Between zero and 51
30386Between 5 and average2
304646Greater than twice above average5
30549Between 5 and average2
30623Between zero and 51
307024Between above average and twice above average 4
308856Greater than twice above average5
30966Between 5 and average2
31036Between 5 and average2
31117Between 5 and average2
312924Between above average and twice above average 4
31372Between zero and 51
31453Between zero and 51
315329Greater than twice above average5
31614Between zero and 51
31799Between 5 and average2
318722Between above average and twice above average 4
319513Average3
322816Between above average and twice above average 4
32361Between zero and 51
32444Between zero and 51
325215Between above average and twice above average 4
32607Between 5 and average2
32789Between 5 and average2
329434Greater than twice above average5
330117Between above average and twice above average 4
33275Between zero and 51
335123Between above average and twice above average 4
336915Between above average and twice above average 4
33772Between zero and 51
338511Between 5 and average2
339312Between 5 and average2
34001Between zero and 51
341820Between above average and twice above average 4
342610Between 5 and average2
34344Between zero and 51
34423Between zero and 51
34502Between zero and 51
34681Between zero and 51
347617Between above average and twice above average 4
348413Average3
34924Between zero and 51
350910Between 5 and average2


If summaried the results would look like this

ScoreScore NameCount or UNIT ref
1Between zero and 543
1Zero3
2Between 5 and average52
3Average5
4Between average and twice above average 37
5Greater than twice above average17
   


Hope this helps



 

 

Hi @cottrera ,

 

You can refer to below table expression.

 

xifeng_L_0-1715695050587.png

 

 

Score = 
VAR TempTable = ADDCOLUMNS(ALL('Table'[Unit Reference]),"Repairs",CALCULATE(COUNTROWS('Table')))
VAR AverageRepairs = ROUND(AVERAGEX(TempTable,[Repairs]),0)
VAR ScoreTable = 
    SELECTCOLUMNS(
        {
            ("Greater then twice above average",5,AverageRepairs*2+1,99999),
            ("Between above average and twice above average",4,AverageRepairs+1,AverageRepairs*2),
            ("Average",3,AverageRepairs,AverageRepairs),
            ("Between 5 and average",2,6,AverageRepairs-1),
            ("Between zero and 5",1,1,5),
            ("Zero",1,0,0)
        },
        "Score Name",[Value1],
        "Score",[Value2],
        "Min",[Value3],
        "Max",[Value4]
    )
RETURN
ADDCOLUMNS(
    TempTable,
    "Score Name",
        MAXX(FILTER(ScoreTable,[Min]<=[Repairs] && [Repairs]<=[Max]),[Score Name]),
    "Score",
        MAXX(FILTER(ScoreTable,[Min]<=[Repairs] && [Repairs]<=[Max]),[Score])
)

 

 

Demo - Distributed Averages.pbix

 

 

Did I answer your question? If yes, pls mark my post as a solution and appreciate your Kudos !

 

Thank you~

 

 

 

 

Amazing thank you

cottrera
Post Prodigy
Post Prodigy

Hi thank you for responding.  The actual dataset I am using  be provided due to company policy. However I have tried to provide some more information on what I would need the DAX to perform.

Note: I have amended score 1 & 2

Score MameScoreMinMax
Greater than twice above average5> Sum repairs / count properties * 2 
Between above average and twice above average 4Sum repairs / count propertiesSum repairs / count properties * 2
Average Repairs 3Sum repairs / count propertiesSum repairs / count properties
Between 5 and average25Sum repairs / count properties
Between zero and 5105
Zero100

This information you provided is the criteria for scoring, now I want to know what expected result you need to return or I can't calculate it for you.

xifeng_L
Super User
Super User

Hi @cottrera , Can you provide your expected results?

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

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