示例图
第一种解法:
let
top = (x)=>Table.ToRecords(Table.FirstN(Table.Buffer(Table.Sort(源,{x, 1})),10)),
源 = Excel.CurrentWorkbook(){[Name="成绩"]}[Content],
前10 = Table.FromRecords(List.Intersect({top("语文"),top("数学")}))
in
前10
第二种解法:
= Table.SelectRows(源,each [a=List.MaxN(源[语文],10),b=List.MaxN(源[数学],10),c=List.Contains(a,[语文]) and List.Contains(b,[数学])][c])
我优化后的解法:
= Table.SelectRows(源,each List.ContainsAll(List.MaxN(源[数学],10)&List.MaxN(源[语文],10), {[数学],[语文]}))