我有一个包含三列的Excel表格。 A列有国家列表,B列有每个国家的城市列表,C列有这些城市的人口。 表的构成方式使得A列将重复国家名称 - 与B国列中每个国家/地区的城市数量一样多。
我想总结每个国家前五个城市的人口。
我尝试过使用SUMIF
和COUNTIF
但未设法使用它。如何计算出现在每个国家的前五个城市的人口(在C行)?
答案 0 :(得分:2)
您是在尝试将列表中第一个五个城市的人口数量加上每个国家人口最多的城市的人口数量(如果列表中的话)按人口排序,这些是相同的)?如果是后者,您可以使用单行数组公式
=SUM(LARGE(IF(A:A="CountryName",C:C),{1,2,3,4,5}))
(Ctrl+Shift+Enter after setting up the formula)
替换" CountryName"参考你想要的前五个人口总和的国家。我认为唯一的问题是,如果名单上的国家少于5个城市,它将会失败。
这是一个公式的版本,当少于5个城市时仍然有效,但仍然排在最前面5个。获得一个1-n值的数组在Excel中是一种丑陋的黑客,但这似乎有效
=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)
答案 1 :(得分: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个城市的人口总和