我有一张2600多排的桌子,与我所在地区的城镇及其人口有关;每个城镇有11行,每个年龄段一个(0-9,10-19,等等)。 我需要得到每个城镇的人口总和;当然我可以手动完成,但这是一项永无止境的工作;我想知道是否有某种命令告诉excel每11行做一次总和并为所有城镇做。 我认为这是一种循环,但我不知道该怎么做。
答案 0 :(得分:1)
使用the SUMIF function可以减少问题。那么问题就变成了如何将其应用于数据集。
假设2600+行中的一列包含城镇名称(或其他唯一标识符),并且您有城镇列表(或其他唯一标识符),则可以使用以下方法。
E2中的公式为=SUMIF(A:A,D2,C:C)
,而E3为=SUMIF(A:A,D3,C:C)
。 A到C是所有数据的列表,D是城镇列表。
答案 1 :(得分:1)
对于VBA解决方案,您应该能够在循环中使用步骤。 所以,如果你希望一次步行11行。
Public Sub IterateRows()
Dim rData As Range, rPtr As Range
Dim dSum As Double
Dim i As long
Set rData = Sheet1.Range("A1:A1000")
For i = 1 To rData.Rows.Count Step 11
Set rPtr = rData(1).Resize(11).Offset(i - 1)
dSum = Application.WorksheetFunction.Sum(rPtr)
Next
End Sub
如果您需要工作表函数解决方案,您可能必须使用MOD运算符并检查值何时为零。
答案 2 :(得分:1)
你有参考专栏吗?如...例如,列A具有城镇名称,列B具有年龄类,而列C具有值。
走下行A列会有重复的城镇名称,是吗?
像这样:
=IF(A1<>A2,SUM(INDIRECT("C"&ROW(A2)&":C"&SUMPRODUCT(MAX((A:A=A2)*(ROW(A:A)))))),D1)
假设您已经维护了数据结构(NO GAPS),D列中的可能解决方案(或任何列只是确保您更改引用)可能是(将其放入D2并将其拖动到工作表的长度):
=SUMIF(A:A,A2,C:C)
如果您每个城镇有任意数量的行,只要您按城镇名称排序,这样就可以了,因此列表中的名称相同,并且没有间隙。
在上面的测试数据集中,我从每个城镇的每个值计数减去250(每个类比前一个城市少250个)只是为了显示输出的一些变化...你可以看到每个城市有2750( 250 * 11)比以前少了。
基本上它构建了一个阵列,其起始位置为&#34;而不是上面的城镇&#34;在第一行中,它遇到一个新的城镇名称,结束位置为#34;同一列表中新城镇的最后(最大)位置&#34;这就是每个城镇你有多少行没有关系。基本上从1到内存限制,我想。 :)
尽管如此,这也有效:
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
formData.add("NUMBER", "ABC");
formData.add("ID", "123");
formData.add("FILE",file); // this is spring multipart file
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "multipart/form-data");
headers.set("Accept", "text/plain");
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(formData, headers);
RestTemplate restTemplate = getRestTemplate();
String result = restTemplate.postForObject(uploadUri, requestEntity, String.class);
是的。不开玩笑只是把它拖到D列......
答案 3 :(得分:1)
答案 4 :(得分:1)
假设以下结构
使用数据透视表这是一项非常简单的任务。
对于LibreOffice Calc:
A1:C13
); Data
- &gt; Pivot Table
; Current selection
; 以下设置数据透视表:
(将Town
字段拖到Row Fiels
区域,将Count
字段拖到Data fields
区域.Lo Calc将默认计算计数条目的总和)
点击确定 - 生成的数据透视表将如下所示:
此解决方案的优势在于,源数据区域无法按城镇排序,并且如果某些城镇不具有9个值行并不重要。此外,您不需要任何公式。
编辑:
您可以使用与计算结果相同的方式处理数据透视表的内容。例如,您可以使用数据透视表值来计算某些城镇的总和(在我的示例中,分别根据数据透视表值B3
和B4
计算城镇B和C的总和):
答案 5 :(得分:0)
你可以用MOD函数做到这一点,它给出了除法的余数。您可以查看每个行号,如果它的MOD等于零,那么它就是您要查找的行。
我在你的例子中计算每个部分的10个项目,所以我不确定我完全理解。假设您需要对以9结尾的每一行(A9,A19,A29等)求和。您可以用11替换下面的9。
=ROW(A9)
为您提供行号。
=MOD(ROW(A9),9)
在天气数字可以被9整除时判断为TRUE或false。如果它是9的倍数,则返回数字0.
现在使用SUM函数并按CONTROL + SHIFT + ENTER完成它。请注意,公式栏通过使用花括号表示这是一个数组函数。你不需要自己打字。
{=SUM(A1:A9*(MOD(ROW(A1:A9),9)=0))}