Google 工作表上的 RANK IF 公式与 SUM

RANK IF formula on Google Sheets with SUM

我正在尝试从数据库中创建总和数字的排名。 该数据库有一份公司在某些国家(编号为 1-10)的独立办公室列表。在某些情况下,同一家公司位于多个国家/地区。 国家/地区列在 A 栏中;公司在B栏;办公室在 C 列。

每个办公室都有一个分数。办公分数在数据库的 D 列中。

我想根据每个国家/地区的公司总分创建一个公司排名。该公司在每个国家的总分是同一公司在同一国家的所有办事处的分数之和。

为了建立这样的排名,必须:

1 - 获取公司在每个国家/地区的总分。我使用 SUMIFS 函数完成了此操作。这是我用来计算这个分数的函数:=SUMIFS($D:$D, $A:$A, $A2, $B:$B, $B2)。这是在数据库的 E 列中计算的。

2- 仅针对位于同一国家/地区的公司,将其与其他公司在每个国家/地区的总分列表进行排名。

我在定义 RANK 的范围时遇到问题,并且了解到使用这样的函数无法做到这一点。对第 1 步计算的值进行排名的范围也需要是条件总和 - 我们正在排名的办事处所在国家/地区的所有分数的总和。如何做到这一点?

经过一些研究,我尝试了涉及 SUMPRODUCTCOUNTIFS 的解决方案,但未能达到预期的结果。我该怎么做?

我创建了一个sample sheet here that might help to understand the problem here

谢谢

这可能有帮助:

=query(A:D,"Select A,B,sum(D) group by A,B order by A,sum(D) desc")

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

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

=QUERY($A:$E;"select E WHERE A="&A2&" ORDER BY E DESC")

由于同一个数字可以出现两次,因此您想在其周围添加一个 UNIQUE。请注意,如果 2 家公司的分数相同,则它们的排名相同。

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

这将 return 范围,从大到小排序。现在您只需使用匹配函数获取当前分数的索引即可。

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

根据筛选范围对选择进行排名。示例:

=排名(C2,过滤(C$2:$C$71,F$2:$F$71=F2),1)

仅当 f2:f72 中的值等于 f2 中的值时,才会对 c2 中的值进行排名(这对具有最低排名的最低值进行排名