excel - Excel 中具有多个标准的排名

标签 excel excel-formula

例如,我需要根据总分(C 列)和数学较高分(B 列)创建少数学生的成绩单 -

A        B  C   D
-------------------------
Student1 80 220 1
Student2 88 180 3
Student3 90 180 2

预期的优点位置在D 列中给出。

我可以使用RANK函数,但我只能对一列(总数)执行此操作。如果多个学生的总数相等,我找不到任何解决方案。

最佳答案

您可以在D1中尝试这个

=COUNTIF($C$1:$C$99,">"&C1)+1+SUMPRODUCT(--($C$1:$C$99=C1),--($B$1:$B$99>B1))

然后复制/填写。 让我知道这是否有帮助。

说明

您的第一个条件位于C 列,第二个条件位于B 列。 基本上,它首先计算大于条目本身 ($C1) 的条目 ($C$1:$C$99) 数量。对于排名中的第一个,您将得到,因此您需要为每个结果添加1(+1)。 到目前为止,如果您两次具有相同的值,您将获得重复的排名。
因此,您需要添加另一个参数来根据第二个条件进行一些额外的计算:
要解决平局情况,您需要sumproduct两个数组公式并将结果添加到前一个参数中,目标是找到与 $C$1:$C$99=C1 等于此条目的条目数,并且在第二个条件列$B$1:$B$99>B1:

您添加--来转换TRUE FALSE01,以便您可以将它们相乘:
SUMPRODUCT(--($C$1:$C$99=C1),--($B$1:$B$99>B1))
第一个数组用于查看第一个条件中有多少个关系。第二个数组是查找比条目本身更大的值的数量。

注意您可以在列中添加任意数量的条目,但请记住更新公式中的范围,当前设置为99,您可以将其扩展到所需的行数。

关于excel - Excel 中具有多个标准的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30141779/

相关文章:

c++ - 使用在 C++ 中创建的 DLL 从 Excel 和 VBA 调用 C++ 函数

excel - 满足参数时 OR 函数未返回 "TRUE"

excel - 子集排名

arrays - VBA如何检查数组是否包含范围内的字符串

mysql - 连接到 MySQL 的安全绕过 MS Excel Power Query

excel - 如何解决excel-vba中的错误400

vba - 如何根据单元格值删除文件?

excel - 在 Excel 预测表中查找需求之间的间隔

Excel:需要日期公式

excel - 如何在更改数据格式的同时加入列的所有文本?