List the names and subjects as well as cell address where the highest marks in the grid appear. In this grid, highest marks is 93.
📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 202
Challenge Difficulty: ⭐️⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn
Solving the challenge of Highest Marks and Location with Power Query
Power Query solution 1 for Highest Marks and Location, proposed by Omid Motamedisedeh:
let
Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
#"Unpivoted Other Columns" = [
A = Table.TransformColumns(
Table.AddIndexColumn(
Table.UnpivotOtherColumns(Source, {"Names"}, "Subject", "Value"),
"Address"
),
{
"Address",
each {"B" .. "E"}{Number.Mod(_, 4)} & Text.From({2 .. 10}{Number.IntegerDivide(_, 4)})
}
),
B = Table.RemoveColumns(Table.SelectRows(A, each _[Value] = List.Max(A[Value])), "Value")
][B]
in
#"Unpivoted Other Columns"
Power Query solution 2 for Highest Marks and Location, proposed by Bo Rydobon 🇹🇭:
let
Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
Unpivot = Table.UnpivotOtherColumns(Source, {"Names"}, "Subjects", "Sc"),
Address = Table.TransformColumns(
Table.AddIndexColumn(Unpivot, "Address"),
{
"Address",
each
let
c = Table.ColumnCount(Source) - 1
in
Character.FromNumber(Number.Mod(_, c) + 66) & Text.From(Number.IntegerDivide(_, c) + 2)
}
),
Filter = Table.RemoveColumns(Table.SelectRows(Address, each [Sc] = List.Max(Address[Sc])), "Sc")
in
Filter
Power Query solution 3 for Highest Marks and Location, proposed by Zoran Milokanović:
let
Source = Excel.CurrentWorkbook(){[Name = "Input"]}[Content],
Filter = Table.SelectRows(
Table.UnpivotOtherColumns(
Table.AddIndexColumn(Source, "Row", 2, 1),
{"Row", "Names"},
"Subjects",
"Value"
),
each ([Value] = List.Max(List.Combine(List.Skip(Table.ToColumns(Source)))))
),
Solution = Table.AddColumn(
Filter,
"Address",
each [
c = List.PositionOf(Table.ColumnNames(Source), [Subjects]) + 1,
cn = Text.Combine(
List.Reverse(
List.Generate(
() => [Position = c, Name = Character.FromNumber(65 + Number.Mod(c - 1, 26))],
each [Position] > 0,
each [
Position = Number.IntegerDivide([Position] - Number.Mod([Position] - 1, 26), 26),
Name = Character.FromNumber(65 + Number.Mod(Position - 1, 26))
],
each [Name]
)
)
)
][cn]
& Text.From([Row])
)[[Names], [Subjects], [Address]]
in
Solution
Power Query solution 4 for Highest Marks and Location, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
Cells = Table.FromColumns(
{Source[Names]}
& List.Transform(
{"B" .. Character.FromNumber(66 + Table.ColumnCount(Source) - 2)},
(x) => List.Transform({2 .. Table.RowCount(Source) + 1}, each x & Text.From(_))
),
Table.ColumnNames(Source)
),
MaxVal = List.Max(List.Combine(List.Skip(Table.ToColumns(Source)))),
Unpivot = Table.UnpivotOtherColumns(Source, {"Names"}, "Subjects", "Address"),
FilterMax = Table.RemoveColumns(Table.SelectRows(Unpivot, each [Address] = MaxVal), "Address"),
Sol = Table.AddColumn(
FilterMax,
"Address",
each Table.ToRows(Cells){List.PositionOf(Source[Names], [Names])}{
List.PositionOf(Table.ColumnNames(Source), [Subjects])
}
)
in
Sol
Solving the challenge of Highest Marks and Location with Excel
Excel solution 1 for Highest Marks and Location, proposed by Bo Rydobon 🇹🇭:
=LET(s,B2:E10,TEXTSPLIT(CONCAT(REPT(A2:A10&"_"&B1:E1&"_"&ADDRESS(ROW(s),COLUMN(s),4)&"|",s=MAX(s))),"_","|",1))
=LET(s,B2:E10,L,LAMBDA(a,TOCOL(IF(s,a))),FILTER(HSTACK(L(A2:A10),L(B1:E1),L(ADDRESS(ROW(s),COLUMN(s),4))),L(s)=MAX(s)))
Excel solution 2 for Highest Marks and Location, proposed by Rick Rothstein:
=LET(b,B2:E10,TEXTSPLIT(TEXTJOIN("/",,IF(b=MAX(b),A2:A10&"-"&B1:E1&"-"&CHAR(64+COLUMN(b))&ROW(b),"")),"-","/"))
Excel solution 3 for Highest Marks and Location, proposed by Rick Rothstein:
=LET(b,B2:E10,TEXTSPLIT(TEXTJOIN("/",,IF(b=MAX(b),A2:A10&"-"&B1:E1&"-"&ADDRESS(ROW(b),COLUMN(b),4),"")),"-","/"))
Excel solution 4 for Highest Marks and Location, proposed by John V.:
=LET(s,"-",v,B2:E10,TEXTSPLIT(TEXTJOIN("|",,REPT(A2:A10&s&B1:E1&s&CHAR(64+COLUMN(v))&ROW(v),v=MAX(v))),s,"|"))
Excel solution 5 for Highest Marks and Location, proposed by محمد حلمي:
=LET(b,B2:E10,TEXTSPLIT(CONCAT(TOCOL(IFS(b=MAX(b),A2:A10&"-"&B1:E1&"-"&ADDRESS(ROW(b),COLUMN(b),4)),2)&"/"),"-","/",1))
Excel solution 6 for Highest Marks and Location, proposed by Kris Jaganah:
=LET(a,B2:E10,b,TOCOL(ADDRESS(ROW(a),COLUMN(a),4)),c,TOCOL(a),d,COLUMNS(a),e,INDEX(A2:A10,FLOOR(SEQUENCE(ROWS(c),,,1/d),1)),f,"Subject "&SCAN(0,b,LAMBDA(x,y,IF(x=d,1,x+1))),FILTER(HSTACK(e,f,b),c=MAX(c)))
Excel solution 7 for Highest Marks and Location, proposed by Timothée BLIOT:
=LET(A,B1:E1,B,A2:A10,D,B2:E10,E,HSTACK(TOCOL(IF(D<>B,B)),TOCOL(IF(D<>A,A)),TOCOL(D)),F,FILTER(TAKE(E,,2),DROP(E,,2)=MAX(D)),
HSTACK(F,MAP(SEQUENCE(ROWS(F)),LAMBDA(x,SUBSTITUTE(CELL("address",INDEX(D,XMATCH(INDEX(F,x,1),B),XMATCH(INDEX(F,x,2),A))),"$","")))))
Excel solution 8 for Highest Marks and Location, proposed by Hussein SATOUR:
=TEXTSPLIT(
LET(
v, B2:E10, s, B1:E1, n, A2:A10,
a, IFNA(COLUMN(v), s), b, IFNA(ROW(v), s),
c, FILTER(TOCOL(a & "," & b), TOCOL(v) = 93),
TEXTJOIN(";",,
INDEX(n, --TEXTAFTER(c, ",") - MIN(b) + 1) & "/" &
INDEX(s, --TEXTBEFORE(c, ",") - MIN(a) + 1) & "/" &
ADDRESS(--TEXTAFTER(c, ","), --TEXTBEFORE(c, ","), 4)
)), "/", ";")
Excel solution 9 for Highest Marks and Location, proposed by Oscar Mendez Roca Farell:
=LET(_m, B2:E10,_n, TOCOL(IF(_m=MAX(_m), 10*ROW(_m)+COLUMN(_m), NA()), 3),_f, INT(_n/10),_c, MOD(_n, 10), HSTACK(INDEX(A1:A10,_f), INDEX(A1:E1,_c), ADDRESS(_f,_c, 4)))
Excel solution 10 for Highest Marks and Location, proposed by Duy Tùng:
=LET(a,B2:E10,f,LAMBDA(v,TOCOL(IFS(a=MAX(a),v),3)),HSTACK(f(A2:A10),f(B1:E1),f(ADDRESS(ROW(a),COLUMN(a),4))))
Excel solution 11 for Highest Marks and Location, proposed by Sunny Baggu:
=LET(_tbl,TEXTSPLIT(TEXTJOIN(";",,A2:A10&","&B1:E1&","&ADDRESS(ROW(B2:E10),COLUMN(B2:E10),4)&","&B2:E10),",",";"),
FILTER(DROP(_tbl,,-1),TAKE(_tbl,,-1)+0=MAX(B2:E10)))
Excel solution 12 for Highest Marks and Location, proposed by Sunny Baggu:
=LET(
_names, TOCOL(IFNA(A2:A10, B1:E1)),
_sub, TOCOL(IFNA(B1:E1, B2:E10)),
_address, TOCOL(MAP(B2:E10, LAMBDA(a, ADDRESS(ROW(a), COLUMN(a), 4)))),
_marks, TOCOL(B2:E10),
FILTER(HSTACK(_names, _sub, _address), _marks = MAX(B2:E10))
)
Excel solution 13 for Highest Marks and Location, proposed by Md. Zohurul Islam:
=LET(p,A2:A10,q,B1:E1,s,B2:E10,mx,MAX(s),
hdr,HSTACK("Names","Subjects","Address"),
f,LAMBDA(a,b,TOCOL(IFNA(a,b))),
u,IF(s=mx,ADDRESS(ROW(s),COLUMN(s),4),""),
v,FILTER(HSTACK(f(p,q),f(q,p),TOCOL(u)),TOCOL(s)=mx),
VSTACK(hdr,v))
Excel solution 14 for Highest Marks and Location, proposed by Charles Roldan:
=LET(Names, A2:A10, Subjects, B1:E1, Scores, B2:E10, Headers, G1:I1,
VSTACK(Headers, TEXTSPLIT(TEXTJOIN(";", TRUE,
REPT(Names & "," & Subjects & "," &
ADDRESS(ROW(Scores), COLUMN(Scores), 4),
Scores = MAX(Scores))), ",", ";")))
Excel solution 15 for Highest Marks and Location, proposed by Tolga Demirci, PMP, PMI-ACP, MOS-Expert:
=HSTACK(TEXTSPLIT(TEXTJOIN("; ";;IF(B2:E10=MAX(B2:E10);A2:A10;"")&IF(B2:E10=MAX(B2:E10);", "&B1:E1;""));;"; ");LET(r;TEXTSPLIT(TEXTJOIN("; ";;IF(B2:E10=MAX(B2:E10);A2:A10;"")&IF(B2:E10=MAX(B2:E10);", "&B1:E1;""));;"; ");MID(ADDRESS(1;MAP(TEXTAFTER(r;", ");LAMBDA(a;MATCH(a;B1:E1;0)+1)));2;1)&RIGHT(ADDRESS(MAP(TEXTBEFORE(r;", ");LAMBDA(b;MATCH(b;A2:A10;0)+1));1);1)))
Excel solution 16 for Highest Marks and Location, proposed by Rayan S.:
=LET(
array, A1:E10,
n, B2:E10,
s, B1:E1,
c, A2:A10,
h, TOCOL(IFNA(EXPAND(s, COUNTA(n) / COUNTA(s)), s), FALSE),
cc, TOCOL(IFNA(EXPAND(c, , COUNTA(n) / COUNTA(c)), c), FALSE),
t, HSTACK(cc, h),
sol, FILTER(t, TOCOL(n) = LARGE(n, 1)),
ref, UNICHAR(XMATCH(TAKE(sol, , -1), s) + 65) & XMATCH(TAKE(sol, , 1), c) + 1,
HSTACK(sol, ref)
)
&&&
