我正在尝试从数据库中创建求和数字的排名。该数据库列出了某些国家的公司的个别办事处(编号1-10)。在某些情况下,同一家公司位于多个国家/地区。国家列在A栏;公司在B栏;办公室在C栏。
每个办公室都有一个分数。 Office分数位于数据库的D列中。
我想根据公司每个国家的总分创建一个公司级别。公司每个国家/地区的总分是同一个国家/地区同一家公司所有办事处的总分。
为了建立这样的排名,必须:
1 - 获取公司每个国家的总分。我使用SUMIFS
函数完成了这个。这是我用来计算这个分数的函数:=SUMIFS($D$2:$D, $A$2:$A, $A2, $B$2:$B, $B2)
。这在数据库的E列中计算。
2-仅针对同一国家/地区的公司,将其与其他公司的每个国家/地区的总分进行排名。
我无法定义RANK
的范围,并且已经知道使用这样的函数不可能做到这一点。对在步骤1中计算的值进行排名的范围也需要是条件总和 - 我们排名的办事处所在国家/地区的所有分数的总和。如何才能做到这一点?
经过一些研究,我尝试过涉及SUMPRODUCT
和COUNTIFS
的解决方案,但未能达到预期的效果。我怎样才能做到这一点?
我在这里创建了一个sample sheet,可能有助于理解问题here。
谢谢
如果您希望能够对它们进行排名,首先必须查找当前国家/地区的所有值并对其进行排序。 就像@ |' - '|,我使用了一个查询:
=QUERY($A$2:$E;"select E WHERE A="&A2&" ORDER BY E DESC")
由于相同的数字可以出现两次,你想要围绕它添加一个qazxsw poi。要小心,如果2家公司得分相同,他们的排名会相同。
UNIQUE
这将返回范围,从最大到最小排序。现在,您只需使用匹配函数获取当前分数的索引。
=UNIQUE(QUERY($A$2:$E;"select E WHERE A="&A2&" ORDER BY E DESC"))
这可能有所帮助:
=MATCH(E2;UNIQUE(QUERY($A$2:$E;"select E WHERE A="&A2&" ORDER BY E DESC"));0)
这不是RANK,而是按降序对SUM进行排序。
根据过滤范围对选择进行排名。例:
=等级(C2,筛选(C $ 2:$ C $ 71 F $ 2:$ F $ 71 = F2),1)
只有当f2:f72中的值等于f2中的值时,这才会将值排在c2中(这会使得最低等级的最低值)