如果另外两列匹配,则减去两列

时间:2014-11-14 18:33:14

标签: excel excel-vba excel-formula excel-2010 sumifs vba

我需要在ColumnA中从与相同特定值相关的ColumnB值之和中减去与每个特定ColumnC值相关(相同行)的ColumnD值之和。

A         B          C          D      E       F
123       1          123        1      123     output (s/b -3)
123       1          345        2      345     output (s/b -4)
345       2          123        4      567     output (s/b  0)
345       3          567        5
567       5          345        7

在这个示例中,我需要123显示-3,345显示-4,显示0 567。然后我会排序并且在ColumnE中只有唯一的数字集,其输出显示在ColumnF中。我也对其他建议持开放态度!我已经玩了一段时间并且无法解决这个问题。

2 个答案:

答案 0 :(得分:2)

请在F2中尝试并复制下来:

=SUMIF(A:A,E2,B:B)-SUMIF(C:C,E2,D:D)

答案 1 :(得分:1)

尝试一下:

Sub Adjuster()
    Dim N As Long, i As Long
    N = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To N
        If Cells(i, 1).Value = Cells(i, 3).Value Then
            Cells(i, 4).Value = Cells(i, 4).Value - Cells(i, 2).Value
        End If
    Next i
End Sub

修改#1

此方法使用

宏非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除宏:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 要使用Excel中的宏:

      1. ALT-F8
      2. 选择宏
      3. 触碰RUN
      4. 要了解有关宏的更多信息,请参阅:

        http://www.mvps.org/dmcritchie/excel/getstarted.htm

        http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

        必须启用宏才能使其正常工作!