繁体   English   中英

带有SUM的Google表格上的RANK IF公式

[英]RANK IF formula on Google Sheets with SUM

我正在尝试从数据库中创建一个汇总数字的排名。 该数据库列出了某些国家/地区中公司的各个办事处(编号为1-10)。 在某些情况下,同一家公司在多个国家/地区。 国家在A栏中列出; 公司在B列中; 办公室在C列中。

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

我想根据公司在每个国家/地区的总得分来排名公司。 公司在每个国家/地区的总分是同一公司在同一国家/地区的所有办事处的总分。

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

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

2-仅针对同一国家/地区的公司,将其与其他国家/地区的公司总分进行比较。

我在定义RANK的范围时遇到了麻烦,并且了解到使用这样的函数无法做到这一点。 步骤1所计算的值的排名范围也必须是有条件的总和-我们要排名的国家/地区中所有分数的总和。 如何才能做到这一点?

在进行了一些研究之后,我尝试了涉及SUMPRODUCTCOUNTIFS解决方案,但未能获得理想的结果。 我怎样才能做到这一点?

我在这里创建了一个示例表 ,可能有助于理解这里的问题。

谢谢

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

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

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

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

这将返回范围,从最大到最小排序。 现在,您只需使用match函数获取当前分数的索引。

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

这可能会有所帮助:

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

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

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

=等级(C2,过滤器(C $ 2:$ C $ 71,F $ 2:$ F $ 71 = F2),1)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM