在Excel中如何使用 INDEX+MATCH 将两个工作表内的数据汇总在一起

这是两个统计的表格 统计时所用的模版是一样的 姓名位置是一样的 需要把后面所收到的对应的快件单号汇总到一张工作表内

第1个回答  2014-06-24
亲,想了半天,我还只会用VBA解决,不知道行不行?
需要知道您说的“两张工作表”是指一个Excel文件中的两个Sheet,还是两个Excel文件?追问

嗯嗯 可以的呀
真是头疼啊 这是是我的举例表 实际的表格数据非常多 要是一个个的粘贴太麻烦了
是一个Excel文件中的两个Sheet
我也是听别人说可以使用INDEX+MATCH 但具体的我也不会

追答

您需要提供一下两个Sheet的名称,比如Sheet1、Sheet2、……
另外,跟您确认一下:您是需要把第2个表的内容添加到第1个表中?

追问

往来记录(1)和往来记录(2)
可以把 往来记录(2)里面的数据添加到往来记录(1)里面
也可以把这两个工作表的数据 都汇总到 另外一个工作表里 (往来记录汇总)

追答

不知道您会不会添加VBA模块。就是按“Alt+F11”打开VBA编辑窗口,在左边的“模块”处点右键,插入模块。在右边窗口粘贴代码。点击运行即可。

 

强烈提醒:运行宏之前,源文件请务必备份一下。

 

附件已上传供参考。

 

 

 

Sub TJ()
Dim rg1, rg2 As Range
Dim totalr1, r2, c2 As Long
totalr1 = Sheets("往来记录(1)").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("往来记录(2)")
For Each rg1 In Range("A2:A" & totalr1)
    r2 = .Range("A:A").Find(rg1.Value).Row
    c2 = .Cells(r2, Columns.Count).End(xlToLeft).Column
    If c2 > 1 Then
        For Each rg2 In .Range(.Cells(r2, 2), .Cells(r2, c2))
            Cells(rg1.Row, Columns.Count).End(xlToLeft).Offset(0, 1).Value = _
              rg2.Value
        Next
    End If
Next
End With
End Sub

本回答被提问者采纳