我的数据是根据跨越一段时间内购买的商品数量汇总的。我的数据如下所示:
客户编号已售出的产品数量开始日期结束日期
1523 6 2006 2008
因此,我想要做的是分析数据,以便分配在该人是客户的整个时间段内销售的产品数量。基本上我试图反向汇总数据以获得单个数据点(我知道它们实际购买产品的时间并不完全准确)。所以在上面的例子中,客户1523在2006年,2007年和2008年都是客户。我想在excel中创建一个Visual Basic宏,它将这些数据删除并重新格式化为以下内容:
客户编号销售年份数
1523 2 2006
1523 2 2007
1523 2 2008
答案 0 :(得分:0)
Sub Tester()
Dim rw As Range, yrStart As Long, yrEnd As Long
Dim num, numYr, yr, cust
Dim rngDest As Range
Set rngDest = Sheets("sheet2").Range("A2")
For Each rw In Sheets("Sheet1").Range("A2:D11").Rows
cust = rw.Cells(1).Value
num = rw.Cells(2).Value
yrStart = rw.Cells(3).Value
yrEnd = rw.Cells(4).Value
numYr = num / ((yrEnd - yrStart) + 1)
For yr = yrStart To yrEnd
rngDest.Resize(1, 3).Value = Array(cust, numYr, yr)
Set rngDest = rngDest.Offset(1, 0)
Next yr
Next rw
End Sub