Excel中两个不规则时间序列的自动合并
情况如下:Excel中两个不规则时间序列的自动合并,excel,vba,Excel,Vba,情况如下: 数据以两个源数据系列提供给我 两个源数据系列都有相同的列,其中一列包含日期 尽管可能有多行具有相同的日期值,但每行都是唯一的 我需要创建一个合并的数据系列,其中包含按日期排序的两个源数据系列中的所有行 源系列需要保留在电子表格中自己的列中,因此我们不能简单地每次都将两个系列复制并粘贴到单个系列中并进行排序 我们需要一些解决方案,一旦输入源系列的数据,就会自动生成合并的数据系列 这里的on似乎都依赖于R,但是在Excel中有什么方法可以做到这一点吗 编辑:下面是一些简化的示例数据(
- 数据以两个源数据系列提供给我
- 两个源数据系列都有相同的列,其中一列包含日期
- 尽管可能有多行具有相同的日期值,但每行都是唯一的
- 我需要创建一个合并的数据系列,其中包含按日期排序的两个源数据系列中的所有行
- 源系列需要保留在电子表格中自己的列中,因此我们不能简单地每次都将两个系列复制并粘贴到单个系列中并进行排序
- 我们需要一些解决方案,一旦输入源系列的数据,就会自动生成合并的数据系列
Type Date Num Name Split Amount
Deposit 12/11/2013 45 John Doe Town Bank -$25.56
Deposit 12/25/2013 wire Jane Doe Village Bank $334.65
Deposit 01/01/2014 wire John Doe Town Bank $1234.56
Deposit 01/06/2014 wire Jane Doe Village Bank $3434.65
Deposit 01/11/2014 45 John Doe Town Bank -$25.56
Deposit 01/14/2014 wire Jane Doe Village Bank $108.00
Deposit 01/27/2014 wire Jane Doe Village Bank $314.15
Deposit 02/11/2014 45 John Doe Town Bank -$25.56
Deposit 02/13/2014 wire Jane Doe Village Bank $2.15
Check 02/24/2014 clr Jim Doe City Bank -$4000.00
数据来源1:
Type Date Num Name Split Amount
Deposit 01/01/2014 wire John Doe Town Bank $1234.56
Deposit 01/06/2014 wire Jane Doe Village Bank $3434.65
Check 02/24/2014 clr Jim Doe City Bank -$4000.00
数据来源2:
Type Date Num Name Split Amount
Deposit 12/11/2013 45 John Doe Town Bank -$25.56
Deposit 12/25/2013 wire Jane Doe Village Bank $334.65
Deposit 01/11/2014 45 John Doe Town Bank -$25.56
Deposit 01/14/2014 wire Jane Doe Village Bank $108.00
Deposit 01/27/2014 wire Jane Doe Village Bank $314.15
Deposit 02/11/2014 45 John Doe Town Bank -$25.56
Deposit 02/13/2014 wire Jane Doe Village Bank $2.15
预期结果:
Type Date Num Name Split Amount
Deposit 12/11/2013 45 John Doe Town Bank -$25.56
Deposit 12/25/2013 wire Jane Doe Village Bank $334.65
Deposit 01/01/2014 wire John Doe Town Bank $1234.56
Deposit 01/06/2014 wire Jane Doe Village Bank $3434.65
Deposit 01/11/2014 45 John Doe Town Bank -$25.56
Deposit 01/14/2014 wire Jane Doe Village Bank $108.00
Deposit 01/27/2014 wire Jane Doe Village Bank $314.15
Deposit 02/11/2014 45 John Doe Town Bank -$25.56
Deposit 02/13/2014 wire Jane Doe Village Bank $2.15
Check 02/24/2014 clr Jim Doe City Bank -$4000.00
像这样的方法应该会奏效:
Sub Tester()
Dim rng1 As Range, rng2 As Range, cr As Range
Set rng1 = Worksheets("Sheet1").Range("A1").CurrentRegion
Set rng1 = rng1.Offset(1, 0).Resize(rng1.Rows.Count - 1) 'omit headers
Set rng2 = Worksheets("Sheet2").Range("A1").CurrentRegion
Set rng2 = rng2.Offset(1, 0).Resize(rng2.Rows.Count - 1) 'omit headers
With Worksheets("Summary")
Set cr = .Range("A1").CurrentRegion
cr.Offset(1, 0).ClearContents 'clear existing data
rng1.Copy .Range("A2")
rng2.Copy .Range("A2").Offset(rng1.Rows.Count)
With .Sort
.SortFields.Clear
.SortFields.Add Key:=cr.Columns(2), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange cr
.Header = xlYes
.MatchCase = False
.Apply
End With
End With
End Sub
不清楚您所说的“源系列需要单独保留”是什么意思,至少提供一个样本数据集-否则您的问题可能会被解决。@TimWilliams这两个源系列需要在我们收到它们时包含在电子表格中。@brettdj数据集已添加。抱歉,但是“包含在我们收到的电子表格中”仍然不清楚。到底是什么阻止您将两个列表复制/粘贴在一起,然后对合并的列表进行排序?您的意思是,当新行添加到任一源时,合并的列表需要用新行自动更新?