使用子集排名

时间:2015-06-09 10:04:40

标签: excel excel-formula rank

我试图对价值进行排名,并设法弄清楚如何分类关系。我的数据会查看条目总数,根据该条目进行排名,如果存在平局,则会查看下一列值以对其进行排序。但是,我的数据集中有两个类(East和West我称之为),并希望将它们分别排列(但坚持上述规则)。所以,如果我有7个条目,其中3个是West,4个是East,我希望West根据该子集中的所有值排名1,2,3,East将排名1,2,3, 4。你能解释一下你的公式在做什么,这样我就能理解将来如何更好地应用你的答案。

有效地,我在询问配方需要达到什么样的结果。

干杯

1 个答案:

答案 0 :(得分:2)

有一些相关的方法可以做到这一点,大多数涉及SUMPRODUCT。如果您不喜欢下面的解决方案,并想研究其他方法/解释,请尝试搜索“rankif”。

enter image description here

该函数会查找ClassValue列,并且对于这些列中的每个值,如果当前TRUE匹配,则返回Class或1如果其Value大于当前ValueFalse,则为0,否则为0。 SUM将所有这些1加起来,1+用于装饰。记得在向下拖动之前使用 Ctrl + Shift + 输入作为数组公式输入。

我使用上面的数组公式和SUM来解释,但是以下也可以工作,甚至可能更快,因为它不是数组公式。这是一样的想法,除了我们劫持SUMPRODUCT从数组中吐出单个值的能力。

=1+SUMPRODUCT(($A$2:$A$8=A2)*($B$2:$B$8>B2))

编辑

要扩展rank-if,您可以通过乘以更多条件来添加更多要排名的子集: enter image description here

您还可以通过添加另一个SUMPRODUCT来轻松添加tiebreakers,以将关系视为附加子集: enter image description here

第一个SUMPRODUCT是'基本排名',而第二个SUMPRODUCT是决胜局#1。