Excel 计算重复行之间的更改
我有从第三方程序导出的数据。数据始终以范围的形式存在,并且每次导出时都是一个新的未保存excel文件 数据基本上包含这种格式Excel 计算重复行之间的更改,excel,vba,Excel,Vba,我有从第三方程序导出的数据。数据始终以范围的形式存在,并且每次导出时都是一个新的未保存excel文件 数据基本上包含这种格式 169 31.0 169 29.0 12 01.31 03 22.0 12 1.09 03 21.5 对不起,我是这个网站的新手。本质上,一列是与成分相关联的代码,第二列是成分的重量。你会看到复制品,因为面包店在前后称量它们。我想计算一下每种配料的用量。因此,最终的输出将是一个表格,其中一列是唯一成分代码的列表,另一列是前后的差异 我尝试过使用透视表,但这就是总结。差异
169 31.0
169 29.0
12 01.31
03 22.0
12 1.09
03 21.5
对不起,我是这个网站的新手。本质上,一列是与成分相关联的代码,第二列是成分的重量。你会看到复制品,因为面包店在前后称量它们。我想计算一下每种配料的用量。因此,最终的输出将是一个表格,其中一列是唯一成分代码的列表,另一列是前后的差异
我尝试过使用透视表,但这就是总结。差异公式需要一个单独的列来进行比较。不幸的是,我没有
有没有更简单的方法?我希望数据透视表的功能与数据透视表基本相同,但使用的是差异而不是总和。假设您的数据位于a列到B列,并从第1行开始,您可以尝试以下代码:
Sub Main2()
Dim cell As Range
With CreateObject("Scripting.Dictionary")
For Each cell In Range("A1").CurrentRegion.Columns(1).Cells
If .Exists(cell.Value) Then
.Item(cell.Value) = .Item(cell.Value) - cell.Offset(, 1).Value
Else
.Item(cell.Value) = cell.Offset(1).Value
End If
Next cell
Range("C1").Resize(.Count).Value = Application.Transpose(.Keys)
Range("D1").Resize(.Count).Value = Application.Transpose(.Items)
End With
End Sub
C列和D列中的输出提供了一个表样本,其中包含一些记录以及预期的输出。