VBA,需要基于另一列中的更改的有条件总和

CapTFalcon

VBA的新手。尝试遍历唯一ID和与每个ID相关的小计值的列表。

之后,该总和需要在第一行的不同列中显示。

注意事项:

  • 当它找到新的ID时,小计需要重新开始,并且仅小计与之相关的值的块。
  • 每个小计仅需在列表中唯一ID的第一个实例旁边显示一次。
  • 每个新工作表将具有5 k行或更多,并且数据将在相同的列中。大量数据。
  • 我的工作表中的各列实际上并不是彼此相邻,而是在同一工作表中。
  • 在每份印刷品中,储量将在不同的行上变化。它需要遍历id并找到更改并仅求和该custid的值。之后,该总和需要在第一行的不同列中显示。

这是一些基本的样本数据:

Totl Subttl CustID Amt。

        123456  55.74
        123456  61.47
        223456  44.53
        223456  142.11
        223456  -142.11
        333456  44.53
        333456  52.89
        333456  118.37
        333456  354.80
        443456  6.49
        443456  44.53
        443456  162.74

为此:

Totl Subttl CustID Amt。

946.09      117.21  123456  55.74
                    123456  61.47
            44.53   223456  44.53
                    223456  142.11
                    223456  -142.11
            570.59  333456  44.53
                    333456  52.89
                    333456  118.37
                    333456  354.80
            213.76  443456  6.49
                    443456  44.53
                    443456  162.74
梅森博士

事实证明,这比我最初预期的要简单。此代码假定唯一ID号列的顺序是这样的,以使它们始终分组在一起,而不是随机分布在整个工作表中。(如果不是这种情况,请说出来,我将首先包括一个排序选项)

编辑我更新了代码以首先包含排序。它还会将其复制到第二张工作表(Sheet2)上,以防万一出问题时不会丢失原始数据列表。

编辑2刚想到,如果要对大型数据集执行此操作,则需要关闭屏幕更新以加快处理速度

Sub sumAndFormat()

Dim lastRow As Long
Dim activeRow As Long
Dim uniqueID As Long
Dim totalSum As Currency
Dim subRow As Long
Dim subTotal As Currency

Application.ScreenUpdating = False

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:B12")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

lastRow = Sheets("sheet1").Cells(Sheets("sheet1").Rows.Count, "A").End(xlUp).row


totalSum = 0
subTotal = 0
subRow = 1

uniqueID = Sheets("Sheet1").Cells(1, 1).value

For i = 1 To lastRow

    totalSum = totalSum + Sheets("Sheet1").Cells(i, 2).value

    If uniqueID = Sheets("Sheet1").Cells(i, 1) Then
        subTotal = subTotal + Sheets("Sheet1").Cells(i, 2).value
        Sheets("Sheet2").Cells(subRow, 2).value = subTotal
        MsgBox (subTotal)
    Else
        uniqueID = Sheets("Sheet1").Cells(i, 1).value
        subTotal = Sheets("Sheet1").Cells(i, 2).value
        subRow = i
    End If



    Sheets("Sheet2").Cells(i, 3).value = Sheets("Sheet1").Cells(i, 1).value
    Sheets("Sheet2").Cells(i, 4).value = Sheets("Sheet1").Cells(i, 2).value

Next i

Sheets("Sheet2").Cells(1, 1).value = totalSum

Application.ScreenUpdating = True

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何有条件地聚合基于另一列的列

来自分类Dev

R根据另一列中的文本有条件地替换NA

来自分类Dev

如何有条件地将一列填充到列表中另一列中的值?

来自分类Dev

有条件地将值从R中的一列粘贴到另一列

来自分类Dev

有条件地将一列替换为另一列(R)

来自分类Dev

如何使用带有条件的另一列的值更新一列?

来自分类Dev

使用 dplyr 有条件地将列中的值替换为另一列中的值

来自分类Dev

根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

来自分类Dev

根据另一列中的数据有条件地从不同列中选择数据

来自分类Dev

如何对另一列有条件的列求和?

来自分类Dev

有条件地用另一列的值替换列的值perl

来自分类Dev

SQL-需要有条件地求和一列

来自分类Dev

有条件地在R中用另一列(但不在同一行中)的值填充一列的值

来自分类Dev

有条件地更改最后一列的值

来自分类Dev

如何在熊猫中将一列子集化而另一列有条件

来自分类Dev

有条件地将一列的内容复制到另一列

来自分类Dev

按一列分组并有条件地计数另一列-MySQL

来自分类Dev

基于日期的有条件总和(合同加班总和)

来自分类Dev

VBA /宏添加带有条件的另一个列

来自分类Dev

Purrr-有条件地突变数据帧列表中的一列

来自分类Dev

有条件地为该列分配一个值,以说明它是在另一列中的值之前还是之后

来自分类Dev

通过使用 Kable 将一列中的单元格与另一列中的值进行比较,有条件地格式化一列中的单元格

来自分类Dev

基于另一列中的值分组后的条件总和

来自分类Dev

MSSQL:如果为空,则使用另一列的值有条件地填充列

来自分类Dev

根据另一列的行值有条件地返回一些行值的向量

来自分类Dev

熊猫根据在另一列上有条件的随机值样本替换NaN值

来自分类Dev

基于第二列的总和和有条件计数

来自分类Dev

如何有条件地回显多维数组的一列中的一个或所有值?

来自分类Dev

熊猫:从一列的子字符串中提取首字母缩写词,并将其与具有条件的另一列匹配

Related 相关文章

  1. 1

    如何有条件地聚合基于另一列的列

  2. 2

    R根据另一列中的文本有条件地替换NA

  3. 3

    如何有条件地将一列填充到列表中另一列中的值?

  4. 4

    有条件地将值从R中的一列粘贴到另一列

  5. 5

    有条件地将一列替换为另一列(R)

  6. 6

    如何使用带有条件的另一列的值更新一列?

  7. 7

    使用 dplyr 有条件地将列中的值替换为另一列中的值

  8. 8

    根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

  9. 9

    根据另一列中的数据有条件地从不同列中选择数据

  10. 10

    如何对另一列有条件的列求和?

  11. 11

    有条件地用另一列的值替换列的值perl

  12. 12

    SQL-需要有条件地求和一列

  13. 13

    有条件地在R中用另一列(但不在同一行中)的值填充一列的值

  14. 14

    有条件地更改最后一列的值

  15. 15

    如何在熊猫中将一列子集化而另一列有条件

  16. 16

    有条件地将一列的内容复制到另一列

  17. 17

    按一列分组并有条件地计数另一列-MySQL

  18. 18

    基于日期的有条件总和(合同加班总和)

  19. 19

    VBA /宏添加带有条件的另一个列

  20. 20

    Purrr-有条件地突变数据帧列表中的一列

  21. 21

    有条件地为该列分配一个值,以说明它是在另一列中的值之前还是之后

  22. 22

    通过使用 Kable 将一列中的单元格与另一列中的值进行比较,有条件地格式化一列中的单元格

  23. 23

    基于另一列中的值分组后的条件总和

  24. 24

    MSSQL:如果为空,则使用另一列的值有条件地填充列

  25. 25

    根据另一列的行值有条件地返回一些行值的向量

  26. 26

    熊猫根据在另一列上有条件的随机值样本替换NaN值

  27. 27

    基于第二列的总和和有条件计数

  28. 28

    如何有条件地回显多维数组的一列中的一个或所有值?

  29. 29

    熊猫:从一列的子字符串中提取首字母缩写词,并将其与具有条件的另一列匹配

热门标签

归档