Sumif循环遍历数据组vba

时间:2018-06-13 22:21:25

标签: excel-vba loops for-loop sumifs vba

如果在其他地方有回答,请告知......

如果A列标准=" PL211010"我试图想出一个总和D列的总和。 &安培; " PL203000&#34 ;.问题是我需要宏来按组而不是整张表来总结(见图)enter image description here

我不确定从哪里开始,我应该使用For Next循环吗?或者甚至是必要的循环?

重要提示此数据透视表每月动态更改。帐户不是静态的,它们可以增加或减少。因此,放置静态公式将无效......

下面的代码是我试图让它工作,只是试图给出基线。

Dim nRowMax, nRowNow As Integer

Application.ScreenUpdating = False

Cells(4, 1).Select
Selection.End(xlDown).Select
nRowMax = Selection.Row

For i = nRowMax To 4 Step -1
If Left(Cells(i, 1), 8) = "PL211010" & "PL203000" Then
        WorksheetFunction.SumIf (Cells(i, 4))
End If
Next i

Application.ScreenUpdating = True

1 个答案:

答案 0 :(得分:1)

这可以在没有VBA的情况下通过直接在数据源上编写公式来完成,如@ashleedawg所述,这可能是您最简单的选择,或者直接从枢轴上写下它们。我在下面做了一个模拟示例,它适用于您提供的案例:

这是一个截图:

enter image description here

  1. 按照我在单元格D1中的图片中的说明更改数据透视表布局
  2. 使用单元格H4中的公式:=SUM(SUMIFS($F$4:$F$11,$D$4:$D$11,D4,$E$4:$E$11,{"A","B"}))
  3. 根据需要向下拖动。
  4. 现在,对我来说已经很晚了,我做得很快,所以我意识到这是重复的,有点混乱。为此,您可以简单地组织单个元素的列表,并从该列表中写出公式。

    或者,您可以通过修改我提供的公式的范围参数直接在数据源上编写公式。