我试图对价值进行排名,并设法弄清楚如何分类关系。我的数据会查看条目总数,根据该条目进行排名,如果存在平局,则会查看下一列值以对其进行排序。但是,我的数据集中有两个类(East和West我称之为),并希望将它们分别排列(但坚持上述规则)。所以,如果我有7个条目,其中3个是West,4个是East,我希望West根据该子集中的所有值排名1,2,3,East将排名1,2,3, 4。你能解释一下你的公式在做什么,这样我就能理解将来如何更好地应用你的答案。
有效地,我在询问配方需要达到什么样的结果。
干杯
保
答案 0 :(得分:2)
有一些相关的方法可以做到这一点,大多数涉及SUMPRODUCT
。如果您不喜欢下面的解决方案,并想研究其他方法/解释,请尝试搜索“rankif”。
该函数会查找Class
和Value
列,并且对于这些列中的每个值,如果当前TRUE
匹配,则返回Class
或1如果其Value
大于当前Value
,False
,则为0,否则为0。 SUM
将所有这些1加起来,1+
用于装饰。记得在向下拖动之前使用 Ctrl + Shift + 输入作为数组公式输入。
我使用上面的数组公式和SUM
来解释,但是以下也可以工作,甚至可能更快,因为它不是数组公式。这是一样的想法,除了我们劫持SUMPRODUCT
从数组中吐出单个值的能力。
=1+SUMPRODUCT(($A$2:$A$8=A2)*($B$2:$B$8>B2))
编辑
要扩展rank-if,您可以通过乘以更多条件来添加更多要排名的子集:
您还可以通过添加另一个SUMPRODUCT
来轻松添加tiebreakers,以将关系视为附加子集:
第一个SUMPRODUCT
是'基本排名',而第二个SUMPRODUCT
是决胜局#1。