计算重复行之间的变化

时间:2017-02-15 23:05:02

标签: excel vba

我有从第三方程序导出的数据。数据始终采用范围的形式,并且每次导出时始终都是新的未保存的Excel文件。

数据基本上包含这种格式。

169 31.0
169 29.0
12 01.31
03 22.0
12 1.09
03 21.5

对不起,我是这个网站的新手。基本上一列是与成分相关的代码,第二列是它们的权重。你会看到重复,因为面包店前后重量。我想计算一下,看看每种成分的使用量。因此,最终输出将是一个表,其中列中包含一列中的唯一成分代码,以及另一列中前后的差异。

我尝试使用数据透视表但总结了它们。差异公式需要一个单独的列来比较自己。不幸的是,我没有。

有更简单的方法吗?我想要一个与数据透视表基本相同的功能,但需要区别而不是总和。

1 个答案:

答案 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

中的输出