— CAN YOU SOLVE THIS - EXCEL CHALLENGE 197 —
(Solutions in any language are also welcome for Excel Challenges)
List the qualifying player from each group on the basis of
- Highest average in that group
- A player should have played a minimum of 10 matches
Post answers in Comment.
(Your formula need not be a single formula. You can write multiple formulas to arrive at a solution. Also your formula need not be different from others as long as you have worked out your formula independently)
Download Practice File - https://lnkd.in/dv38AK8c
#excel, #excelchallenge, #powerquerychallenge, #daxchallenge, #m, #dax, #powerbi, #powerquery, #powerpivot, #sheets, #googlesheets, #data, #analytics, #businessintelligence, #finance, #office365, #python, #r
Excel BI LinkedIn Post
Maybe I’m getting the gist of the MAP-funtion?
MAP(N3:N5;LAMBDA(x;FILTER($B$2:$B$13;($A$2:$A$13=x)*($K$2:$K$13=MAX(FILTER($K$2:$K$13;($A$2:$A$13=x)*($L$2:$L$13=TRUE)))))))
Qualifying players w/ #powerquery. #bitanbit #powerbi
let
Source = Excel.CurrentWorkbook(){[Name="Input"]}[Content],
Solution = [Table.Group](http://table.group/)(Table.AddColumn(Table.SelectRows(Source, each [Matches] >= 10), "Avg", each [Total Points] / [Matches]), {"Group"}, {{"Player", each List.Last(Table.Sort(_, "Avg")[Player])}})
in
Solution
This ugly formula is by no means Dynamic, and is hardcoded to there being only 3 groups: A, B, C. I blame Excel for having issues with MAXIFS and calculated arrays!
=LET(A, A2:D13,
B, INDEX(A,0,3),
C, INDEX(A,0,4)/B*(B>9),
D, INDEX(A,0,1),
E, C=MAX(IF(D="A",C,0)),
F, C=MAX(IF(D="B",C,0)),
G, C=MAX(IF(D="C",C,0)),
H, TAKE(A,,2),
I, VSTACK(FILTER(H,E),FILTER(H,F),FILTER(H,G)),
I)
Hi,
insert this formula in H3 and then drag down.
ENGLISH VERSION
=LET(mean,$D$2:$D$13/$C$2:$C$13,x,MAX(IF($A$2:$A$13=G3,IF($C$2:$C$13>=10,mean))),INDEX($B$2:$B$13,MATCH(G3&x,$A$2:$A$13&mean,0)))
ITALIAN VERSION
=LET(mean;$D$2:$D$13/$C$2:$C$13;x;MAX(SE($A$2:$A$13=G3;SE($C$2:$C$13>=10;mean)));INDICE($B$2:$B$13;CONFRONTA(G3&x;$A$2:$A$13&mean;0)))