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