Excel 匹配 - 最大、第二大、第三大和最低、第二低等,没有重复,包括空格和相同的分数

Excel Match - Largest, 2nd Largest, 3rd Largest & Lowest, 2nd Lowest, etc. without duplicates, including spaces & same scores

我正在尝试自动匹配 excel 中得分最高的 3 个部分和最低的 3 个部分(总共 17 个部分)。每个部分的成绩在各部分之间打印出来,因此同一列中可能存在应忽略的空格(下图)。我正在尝试匹配列表中得分最高、第二高和第三高的部分,不要重复。

现在因为多个部分可能有 100% 的分数,如果有两个部分有 100%,匹配将复制第一个结果,而不是下一个唯一结果。如果有多个 100 或相同的分数,则可以自上而下排名(第一个找到/等)。由于间距(下图),输出中的合并单元格也存在问题。

感谢任何帮助。衷心感谢!

测试公式(下面的table):

=INDEX(D6:D33,MATCH(LARGE(E6:E33,1),E6:E33,0))
=INDEX(D6:D33,MATCH(LARGE(E6:E33,2),E6:E33,0))
=INDEX(D6:D33,MATCH(LARGE(E6:E33,3),E6:E33,0))
=INDEX(D6:D33,MATCH(SMALL(E6:E33,1),E6:E33,0))
=INDEX(D6:D33,MATCH(SMALL(E6:E33,2),E6:E33,0))
=INDEX(D6:D33,MATCH(SMALL(E6:E33,3),E6:E33,0))

实际示例公式(来自文档)

=INDEX($B:$B8,MATCH(LARGE($N:$N8,1),$N:$N8,0))

尝试了其他公式

=LET(rng,CHOOSE({1,2},B47,B85,B141,B163,B187,B207,B231,B262,B283,B308,B327,B353,B379,B413,B437,B465,B500,N47,N85,N141,N163,N187,N207,N231,N262,N283,N308,N327,N353,N379,N413,N437,N465,N500),rws,ROWS(rng),INDEX(SORT(rng,2,-1),CHOOSE({1;2;3;4;5;6},1,2,3,rws,rws+1,rws+2,1)))
=LET(rng,CHOOSE({1,2},D6:D33,E6:E33),rws,ROWS(rng),INDEX(SORT(rng,2,-1),CHOOSE({1;2;3;4;5;6},1,2,3,rws,rws-1,rws-2,1)))

测试数据(实际数据是空白的,但我需要'-'来格式化这里)

Description Score (%)
Section 1 100
- -
- -
- -
Section 2 30
- -
Section 3 102
Section 4 83
- -
- -
Section 5 85.5
Section 6 97.7
- -
- -
- -
- -
Section 7 90
Section 8 100
Section 9 100
Section 10 98
Section 11 99
- -
- -
- -
Section 12 75
Section 13 75
Section 14 80
Section 15 37
Answers -
Highest Section 3
2nd Highest Section 1
3rd Highest Section 1
Lowest Section 2
2nd Lowest Section 15
3rd Lowest Section 12
Desired Answers -
Highest Section 3
2nd Highest Section 1
3rd Highest Section 8
Lowest Section 2
2nd Lowest Section 15
3rd Lowest Section 12

添加过滤器以删除 non-numeric 行:

=LET(rngprm,CHOOSE({1,2},D6:D33,E6:E33),rng,FILTER(rngprm,ISNUMBER(INDEX(rngprm,0,2))),rws,ROWS(rng),INDEX(SORT(rng,2,-1),CHOOSE({1;2;3;4;5;6},1,2,3,rws,rws-1,rws-2,1)))

编辑:

如果它们真的是空白而不是 - 或 returns "" 空白的公式,那么:

=LET(rngprm,CHOOSE({1,2},D6:D33,E6:E33),rng,FILTER(rngprm,INDEX(rngprm,0,1)<>0),rws,ROWS(rng),INDEX(SORT(rng,2,-1),CHOOSE({1;2;3;4;5;6},1,2,3,rws,rws-1,rws-2,1)))