2017-08-16 42 views
0

我有一个Excel表格,有三列。 A列有国家列表,B列有每个国家的城市列表,C列有这些城市的人口。 表的结构使得列A将具有重复的国家名称 - 与列B中的每个国家的城市数量一样多。在Excel中总结前五个实例

我想总结第一个每个国家的五个城市。

我试过使用SUMIFCOUNTIF,但还没有设法做到这一点。我怎么能总结出现在每个国家的前五个城市的人口(在C行)?

回答

2

的人口总和你们是不是要总结在列表中第一五个城市的人口和人口每个国家的前5名人口最多的城市(如果名单按人口排序,这些都是相同的)?如果是后者,你可以用一个行阵列式

=SUM(LARGE(IF(A:A="CountryName",C:C),{1,2,3,4,5})) 
(Ctrl+Shift+Enter after setting up the formula) 

如果你将“国家或地区名称”与你想要的前5名的种群的总和该国基准做到这一点。我认为唯一的问题是,如果名单上一个国家的城市少于5个,它将会失败。

下面是公式的一个版本,适用于少于5个城市的情况,但仍然排在前5位。在Excel中获取1-n数组是一种丑陋的黑客攻击,但似乎工作。

=SUM(LARGE(IF(A:A="CountryName",C:C),ROW(OFFSET(A1,,,MIN(COUNTIF(A:A,"CountryName"),5))))) 
(Ctrl+Shift+Enter after setting up the formula) 
+0

谢谢!由于表格按人群排序,工作得很好。 – franciscofcosta

+0

关于如何解决少于5个城市的国家的问题有何想法? – franciscofcosta

+0

当然,我添加了一个公式版本,它通过计算城市数量并将其限制到5来动态创建查找数字的数组。5.在Excel中做一件丑陋的黑客事情,但我认为它可行。 – Wedge

0

添加一列D.在D2中写入以下公式D2 = COUNTIF($ A $ 1:$ A2,$ A2)并将其向下拖动。 现在将做什么是排名特定国家的实例。 现在这是一个E栏非常简单的公式,您将得到总和 E2 = SUMIFS($ C $ 2:$ C $ 1000,$ A $ 2:$ A $ 1000,$ A2,$ D $ 2:$ D $ 1000,“ < = 5" )并向下拖动 现在,每一个国家,你将拥有前5个城市