对行进行分组并对最后一列求和

时间:2015-03-30 09:00:09

标签: excel excel-vba excel-formula vba

我的原始数据如下:

enter image description here

我希望将我的数据转换为:

enter image description here

有没有办法在不使用数据透视/小计的情况下完成此操作。我反对数据透视/小计的原因是因为我想将这些数据与其他一些数据合并并进行一些计算。 VBA也很好。

有什么想法吗?我不想在这里找到整个解决方案,只是建议我继续下去。我做了一些研究,所有这些只是Pivot / Subtotals的指针。

2 个答案:

答案 0 :(得分:0)

你有什么尝试?请分享您的代码/研究。

对于“总体努力”,请尝试:

=SUM(IF(B$2:B$9=G2;D$2:D$9))

在编辑单元格值时按CTRL + SHIFT + ENTER。然后将其拖下来。

其中“G2”是“名称”值。 “B2:B9”是“名称”列,“D2:D9”是“总工作量”列。

其他专栏:

要获取其他列,您需要获取唯一值。对ID列执行此操作(假设您需要列F中的唯一ID):

=INDEX($A$2:$A$9;MATCH(0;INDEX(COUNTIF($F$1:F1;$A$2:$A$9);0;0);0))

在编辑单元格值时按CTRL + SHIFT + ENTER。然后将其向下拖动,直到获得#N / A值。

其中“A2:A9”是“ID”列。 “F1:F1”是具有唯一“ID”的新列。

答案 1 :(得分:0)

我一直这样做是为了修复sundy数据,你可以使用ADO连接到工作簿并在工作表上运行SQL groupby语句。

如果您不想使用VBA,那么您可以使用微软查询执行相同的操作,尽管使用Data>它有点笨拙;来自其他来源>来自microsoft query(数据源= excel文件)。

对于更简单的查询构建器,您只需将表导入Access并在那里运行groupby查询,然后将其粘贴回来。

相关问题