根据关联值和平局值动态排序列表

时间:2018-11-09 16:33:57

标签: excel excel-formula excel-2016

我正在尝试根据参与频率对学生进行排序。我有一个自动生成的表格,汇总了学生最近几天参加活动的频率。 我要它做2件我不知道的事情。

  1. 我希望它忽略0岁的学生,将其从结果排名中删除。
  2. 第一个数字最重要,但我希望它在平局结果中引用下一个值。

表格的简短示例:

Andy - 1 1 2 3
Brad - 0 1 2 3
Cade - 1 2 3 4
Dane - 1 1 1 2

所需结果:

Cade - 1
Andy - 1
Dane - 1

决胜局并不是那么重要,我认为我可以有条件地格式化以删除0处的子级,但是我似乎仍然无法弄清楚。 我在搜索中找到的最接近的公式是:

=INDEX($A$10:$A$9,MATCH(ROWS($C$1:C1),$C$1:$C$9,0)) 

这是行不通的,因为它几乎为所有并列的学生返回#N / A。

=IFERROR(INDEX($C$1:$C$9,MATCH(SMALL(NOT($C$1:$C$9="")*IF(ISNUMBER($C$1:$C$9),COUNTIF($C$1:$C$9,"<="&$C$1:$C$9),COUNTIF($C$1:$C$9,"<="&$C$1:$C$9)+SUM(--ISNUMBER($C$1:$C$9))),ROWS($C$1:C1)+SUM(--ISBLANK($C$1:$C$9))),NOT($C$1:$C$9="")*IF(ISNUMBER($C$1:$C$9),COUNTIF($C$1:$C$9,"<="&$C$1:$C$9),COUNTIF($C$1:$C$9,"<="&$C$1:$C$9)+SUM(--ISNUMBER($C$1:$C$9))),0)),"")

我有一个可以处理平局的公式,但是它必须是OFFSET,但是由于它是一个数组公式,所以我不知道如何。同样,通过这两个公式,它会颠倒排名最低的排名。如果有人可以帮助我,我将不胜感激。我这样做是为了给所有学生一个平等参与的机会。

1 个答案:

答案 0 :(得分:1)

使用帮助列。在该列中输入以下公式:

=IF(B1=0,"n/a",SUMPRODUCT(B1:E1/10^(COLUMN(B1:E1)-MIN(COLUMN(B1:E1)))))

这将根据排名返回一个数字。

![enter image description here

然后在输出列中使用:

=IFERROR(INDEX(A:A,MATCH(LARGE(F:F,ROW(1:1)),F:F,0)),"")

![![enter image description here

然后使用简单的VLOOKUP返回第一个数字:

=IF(I1<>"",VLOOKUP(I1,A:B,2,FALSE),"")

![![enter image description here