使用SUM在Google表格上的RANK IF公式

问题描述 投票:0回答:2

我正在尝试从数据库中创建求和数字的排名。该数据库列出了某些国家的公司的个别办事处(编号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中计算的值进行排名的范围也需要是条件总和 - 我们排名的办事处所在国家/地区的所有分数的总和。如何才能做到这一点?

经过一些研究,我尝试过涉及SUMPRODUCTCOUNTIFS的解决方案,但未能达到预期的效果。我怎样才能做到这一点?

我在这里创建了一个sample sheet,可能有助于理解问题here

谢谢

if-statement google-sheets rank sumifs
2个回答
2
投票

如果您希望能够对它们进行排名,首先必须查找当前国家/地区的所有值并对其进行排序。 就像@ |' - '|,我使用了一个查询:

=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"))

0
投票

这可能有所帮助:

=MATCH(E2;UNIQUE(QUERY($A$2:$E;"select E WHERE A="&A2&" ORDER BY E DESC"));0)

这不是RANK,而是按降序对SUM进行排序。


0
投票

根据过滤范围对选择进行排名。例:

=等级(C2,筛选(C $ 2:$ C $ 71 F $ 2:$ F $ 71 = F2),1)

只有当f2:f72中的值等于f2中的值时,这才会将值排在c2中(这会使得最低等级的最低值)

© www.soinside.com 2019 - 2024. All rights reserved.