macros按月分组数据

我试图创build一个按月分组数据的macros:例如,如果客户A的2月份有3个条目,那么它将把这三个条目合并为一个,然后对这些条目进行总和。

我有:

答:客户名称

B:发票号码

C:帐单月份

D:货币

E:收费金额

F:发票步骤

列标题在这里

我试图做的是将以下内容合并到一行中,将发票数量相加,并将三行replace为一行。 这些条目是针对单个客户端的(因此分组取决于列A中的值)。

这里的条目的例子

例如。 客户端A有一个三个入口,客户端B有一个,客户端C有一个。 那么对于二月份客户端A有一个,客户端B有一个,客户端C有两个。

我在这里看到的任何macros观build议都没有对我有帮助,我不断收到错误,所以我不知道是什么问题。 这是我试过的一个:

Sub Group() Dim e As Range, a as Range Set e = Range("C6") Set c = e.Offset(, 2) Do If Evaluate("=month(" & e.Address & ")") <> Evaluate("=month(" & e(2).Address & ")") Then e(2).Resize(2, 3).Insert e(2).Offset(, 2) = "=sum(" & Range(a, c.Offset(, 2)).Address & ")" e(2).Offset(, 2).Font.Bold = 1 Set e = e.End(4) Set c = e.Offset(, 2) Else Set e = e(2) End If Loop Until e.End(4).Row = Rows.Count e(2).Offset(, 2) = "=sum(" & Range(c, e.Offset(, 2)).Address & ")" e(2).Offset(, 2).Font.Bold = 1 End Sub 

编辑:小计和数据透视表将无法正常工作 – 原始数据被粘贴(成千上万的条目,对于40多个客户,有些每月有很多发票),原始数据使用macrossorting,然后粘贴其他床单。 从关键点粘贴会更困难。

我按照你的形象写代码: 在这里输入图像说明

代码后:

在这里输入图像说明

这里是代码:

 Sub TEST() Dim lastrow As Long lastrow = Range("A" & Rows.Count).End(xlUp).Row For i = 6 To lastrow lastrow = Range("A" & Rows.Count).End(xlUp).Row For j = i + 1 To lastrow If Range("A" & j) = Range("A" & i) And Range("C" & j) = Range("C" & i) Then Range("B" & i) = Range("B" & i) & "," & " " & Range("B" & j) Range("E" & i) = Range("E" & i).Value + Range("E" & j).Value Rows(j).EntireRow.Delete End If Next j Next i End Sub