EXCEL 一个表中的数据按第一列匹配复制到另外一个表中 5
一个EXCEl表中有N个SHEET,每个SHETT中的第一列是1.2.5.9.10……,这个号码的范围是1到100,但是每个表第一列并不连续;现在我要做一个新的EXCEL...
一个EXCEl表中有N个SHEET,每个SHETT中的第一列是1.2.5.9.10……,这个号码的范围是1到100,但是每个表第一列并不连续;现在我要做一个新的EXCEL ,相当于一个大表,第一列设置成1.2.3……100连续号码,后面粘贴复制前一个EXCEl 中号码对应匹配的数据。什么操作方法可以实现呢?求助。我现在想的方法是手动粘贴复制到对应位置但是容易出错;或者先在第二个表中筛选对应的号码,然后把第一个表中的复制过来。 急需 好的 方案 ,求助,谢谢!!!!!
新手,只有5分可以悬赏 了,求助!!!
我使用VLOOKUP的时候只能实现基础表中“号码后的第一列”的数据出现在新的大表中,而我要的是“号码后的所有列的数据”都出现在新表中。我的函数大概是"=VLOOKUP(A1,[基础表.xlsx]表题01!$A:$Y,2,0)" 但是只能实现1列的匹配,向右向下ctrl+拖曳,只有第一列有数据,其他出现的都是N&A。很着急,在知道上搜了很多其他命令试验都不行,自己又做不出来!谢谢各位! 展开
新手,只有5分可以悬赏 了,求助!!!
我使用VLOOKUP的时候只能实现基础表中“号码后的第一列”的数据出现在新的大表中,而我要的是“号码后的所有列的数据”都出现在新表中。我的函数大概是"=VLOOKUP(A1,[基础表.xlsx]表题01!$A:$Y,2,0)" 但是只能实现1列的匹配,向右向下ctrl+拖曳,只有第一列有数据,其他出现的都是N&A。很着急,在知道上搜了很多其他命令试验都不行,自己又做不出来!谢谢各位! 展开
2013-06-15
展开全部
简单容易操作,用VLOOKUP匹配函数:
1、选定匹配 关键字段。并按 此主关键字段 升序排列每张表。
2、新表 复制对应列 输入:VLOOKUP函数。函数可参考帮助。
3、向下拖公式即可完成,复制。
希望对你有用。感谢!
1、选定匹配 关键字段。并按 此主关键字段 升序排列每张表。
2、新表 复制对应列 输入:VLOOKUP函数。函数可参考帮助。
3、向下拖公式即可完成,复制。
希望对你有用。感谢!
更多追问追答
追问
我尝试用了VLOOKUP,但是匹配之后,只有基础表中的第一列能够出现在第二个表中,我需要基础表中的所有数据按序号匹配过来。这个要怎么解决呢?
追答
1、锁定匹配主关键字。
2、其他匹配需要修改,函数第三个参数,要取那列,修改列数值。
例如: 主关键字基础表A列,需取第5列。改为5即可。
展开全部
如果N个Sheet1的表名分别是Sheet1、Sheet2、Sheet3……,那么在汇总表的B2单元格输入以下公式,然后向右向下填充公式
=VLOOKUP($A2,INDIRECT("Sheet"&LOOKUP(1,0/COUNTIF(INDIRECT("Sheet"&ROW($1:$10)&"!A:A"),A2),ROW($1:$10))&"!A:Y"),COLUMN(B1),0)
=VLOOKUP($A2,INDIRECT("Sheet"&LOOKUP(1,0/COUNTIF(INDIRECT("Sheet"&ROW($1:$10)&"!A:A"),A2),ROW($1:$10))&"!A:Y"),COLUMN(B1),0)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Declare Function GetTickCount Lib "kernel32" () As Long
Sub update()
x = GetTickCount
Application.ScreenUpdating = False
Application.EnableEvents = False
Set t = Workbooks.Open("c:\工程单明细.xls") '路径自行更改
Set s = Workbooks.Open("d:\erp.xls")
With s.Sheets(1)
.Cells.Replace " ", ""
r = .Cells(65536, 1).End(xlUp).Row
arr = .Range("a2:y" & r).Value
End With
s.Saved = True
s.Close
Set s = Nothing
r = r - 1
For i = 1 To r
arr(i, 3) = Mid(arr(i, 3), 2, Len(arr(i, 3)) - 3)
Next
b = Array(1, 25, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22)
With t.Sheets("工程单明细")
.Range("a3:t65536").ClearContents
For c = 1 To 20
.Cells(3, c).Resize(r, 1) = Application.Index(arr, 0, b(c - 1))
Next
End With
t.Save
t.Close
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "导入完成!共导入 " & r & " 行数据,耗时 " & (GetTickCount - x) / 1000 & " 秒"
End Sub
Sub update()
x = GetTickCount
Application.ScreenUpdating = False
Application.EnableEvents = False
Set t = Workbooks.Open("c:\工程单明细.xls") '路径自行更改
Set s = Workbooks.Open("d:\erp.xls")
With s.Sheets(1)
.Cells.Replace " ", ""
r = .Cells(65536, 1).End(xlUp).Row
arr = .Range("a2:y" & r).Value
End With
s.Saved = True
s.Close
Set s = Nothing
r = r - 1
For i = 1 To r
arr(i, 3) = Mid(arr(i, 3), 2, Len(arr(i, 3)) - 3)
Next
b = Array(1, 25, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22)
With t.Sheets("工程单明细")
.Range("a3:t65536").ClearContents
For c = 1 To 20
.Cells(3, c).Resize(r, 1) = Application.Index(arr, 0, b(c - 1))
Next
End With
t.Save
t.Close
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "导入完成!共导入 " & r & " 行数据,耗时 " & (GetTickCount - x) / 1000 & " 秒"
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是序号匹配的话,可以使用vlookup函数对应
更多追问追答
追问
我尝试用了VLOOKUP,但是匹配之后,只有基础表中的第一列能够出现在第二个表中,我需要基础表中的所有数据按序号匹配过来。这个要怎么解决呢?
追答
"=VLOOKUP(A1,[基础表.xlsx]表题01!$A:$Y,2,0)" 这个里面的2是根据你要显示的内容修改列数的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询