我有从第三方程序导出的数据。数据始终采用范围的形式,并且每次导出时始终都是新的未保存的Excel文件。
数据基本上包含这种格式。
169 31.0
169 29.0
12 01.31
03 22.0
12 1.09
03 21.5
对不起,我是这个网站的新手。基本上一列是与成分相关的代码,第二列是它们的权重。你会看到重复,因为面包店前后重量。我想计算一下,看看每种成分的使用量。因此,最终输出将是一个表,其中列中包含一列中的唯一成分代码,以及另一列中前后的差异。
我尝试使用数据透视表但总结了它们。差异公式需要一个单独的列来比较自己。不幸的是,我没有。
有更简单的方法吗?我想要一个与数据透视表基本相同的功能,但需要区别而不是总和。
答案 0 :(得分:0)
假设您的数据位于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
中的输出