如何在excel工作簿中自动提取条件符合的数据到另一表中

a.xls和b.xls两个EXCEL工作簿中,a.xls里面包含很多工作表,且每表中的A1列都是型号,B1列都是数量。

现在想得到效果是在b.xls的表中A1列输入任一型号,B1列就能自动生成a.xls里所以表中相应型号的数量合计。有没有简洁的公式或者是宏也行

首先更正楼主的一个错误,A1、B1叫单元格(每个行与列交叉的小格叫单元格),而不是列(列应当用A、B...表示)。像你这样提问,很难让回答者明白你的意思。。
目前找不到太好的代码,先用下面的代码吧,速度可能稍慢些(视a.xls里面内容多少而定)~~
使用方法(代码中以A、B列理解的你的意思):
1、打开 b.xls 需要输入型号的那张表,按 ALT + F11 组合键打开 VBA编码器
2、在编码器左侧双击与 b.xls 需要输入型号的那张表 对应的表
3、把下面的代码复制到右侧的代码区域
在 b.xls 需要输入型号的那张表的A列输入型号试试看哦。。

' 表更新事件
Private Sub Worksheet_Change(ByVal Target As Range)

' 把发生更新的单元格行号赋值给变量 i
i = Target.Row
' 如果A列数据发生更新
If Target.Column = 1 Then
' 如果单元格更新后的内容为空,则结束代码
If Cells(i, 1) = "" Then Exit Sub
' 先使更新单元格同行的B列值为空
Cells(i, 2) = ""
' a.xls 获得焦点
Windows("a").Activate
' 循环 a.xls 的各个表
For Each aws In Worksheets
' 循环 a.xls 中 aws 表的用户行
For j = 1 To aws.UsedRange.Rows.Count
' 如果 A列单元格 等于输入内容
If aws.Cells(j, 1) = Cells(i, 1) Then
Cells(i, 2) = aws.Cells(j, 2)
End If
Next j
Next aws
' b.xls 获得焦点
Windows("b").Activate
' 如果没有对应内容
If Cells(i, 2) = "" Then
MsgBox "对不起!没有找到你输入的内容...", , "波涛工作室"
End If
End If

End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-05

高级筛选不仅能筛选出合乎条件的数据且可以把数据放于指定位置,完全符合题目意思:

    把筛选条件按照标题,下面是条件的格式写在任意空白处

    点击高级筛选-方式选择复制到其他位置-区域选择全部内容,一定要有标题,条件选择上点的区域,复制到选择另一个表的位置,为了好显示下例选择的是本表:

第2个回答  2013-03-12
代码放到对应表的窗口。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Sum As Double
Dim R1 As Range, R2 As Range, Str As String
If Target.Column = 1 Then
if target.text="" then exit sub

Str = Target.Text
For Each Sh In Workbooks("book1.xls").Worksheets '引号内为查找的工作簿名称

Set R1 = Sh.Columns("A").Find(Str, LOOKAT:=xlWhole)
If R1 Is Nothing Then GoTo L1
Set R2 = R1
Do
Set R1 = Sh.Columns("A").Find(Str, R1, LOOKAT:=xlWhole)
Sum = Sum + R1.Offset(0, 1).Value
If R1.Address = R2.Address Then Exit Do
Loop
L1:
Next
Target.Offset(0, 1).Value = Sum
End If
End Sub本回答被网友采纳
第3个回答  2013-03-11
在b.xls的B1单元格输入=SUMIF(Sheet1!A:A,A1,Sheet1!B:B),下拉,然后在A1单元格输入相应的型号就能得到相应的数量。追问

但这是针对一个表 需要的是a.xls里面所有的工作表

追答

哦,那看来得用宏了,同等高手来答。

本回答被提问者采纳

如何将Excel表格中的数据快速提取到另一表中
1、首先选中Excel表格,双击打开。2、然后在该界面中,选中“方方格子”里“工作表”里“汇总拆分”按钮。3、再者在该界面中,选中“汇总大师”选项。4、之后在该界面中,点击左侧“多簿汇总到一表”选项。5、接着在该界面中,点击“开始”按钮。6、其次在该界面中,点击右侧的“添加文件”按钮。7...

如何从Excel文件提取一个工作簿的数据到其他文件?
1、打开Excel原始文件 2、在需要提取的工作簿(表单)名称上单击右键,出现如图所示对话框,选择移动或复制选项;若一次性移动两张或以上的工作簿(表单),在选取工作簿(表单)时按住键盘Ctrl键,一次性同时选取所有工作簿(表单),并在其中一张工作簿(表单)名称上单击右键 3、弹出移动或复制工作表...

如何将excel表格中的数据自动导入到另一表格中?
1. 首先第一步打开电脑中的一个Excel文档,也就是小编下图所示的工作簿1。2. 第二步点击最上方【+】号选项,新建【工作簿2】。根据下图所示,在工作簿2中输入类似工作簿1的数据,姓名的顺序是不一样的。选中【B1】单元格,然后输入【vl】后点击跳出的【VLOOKUP】函数。3. 第三步鼠标左键双击B1...

如何在excel工作簿中自动提取条件符合的数据到另一表中
1、打开 b.xls 需要输入型号的那张表,按 ALT + F11 组合键打开 VBA编码器 2、在编码器左侧双击与 b.xls 需要输入型号的那张表 对应的表 3、把下面的代码复制到右侧的代码区域 在 b.xls 需要输入型号的那张表的A列输入型号试试看哦。。' 表更新事件 Private Sub Worksheet_Change(ByVal Tar...

excel如何把一张工作表中符合某一个条件的正行信息自动复制到另一个...
使用自动筛选或高级筛选可以实现你的目标。也可以用数据透视表,将行业做为页字段,调出数据透视表工具条,点击数据透视表工具条左侧数据透视表下拉菜单,选择 分页显示。

在excel工作簿中如何将表1中符合条件的数值自动填到表2中
步骤:1.点击“数据源”页面,按“数据源”页一维模式建表(也可按“数据源2”建表)2.筛选大于或等于160值 3.复制筛选后的表,选择性粘贴-数值,到另一页,本例复制到sheet2页里 4.选择粘贴的数据范围(含更标题)5.点菜单【插入】-数据透视表-数据透视表 6.在弹出的透视表设置页面里,将"...

excel中怎么跨工作簿引用数据?
方法\/步骤 暗渠简单的一种是直接等于其它工作表的单元格,比如:sheet2工作表中A1单元格引用sheet1表中A1单元格,则直接=Sheet1!A1就引用过来了。   第二种,给定条件引用。比如我要根据sheet2中B3单元格数据来引用sheet1中所对应相同数据的C列数据,如图,则可以用VLOOKUP公式。

如何将excel中的表复制到另一张表中
1、第一步:首先在电脑端打开一个excel数据完整的表,需要引用这个表中的信息。2、第二步:然后打开另一个要引用其他表内容的工作表,然后把光标定位在需要引用的单元格上。3、第三步:在要引用数据的单元格中输入【=vl】,系统会自动显示VLOOKUP函数,双击蓝色区域。4、第四步:接着可以看到,此...

怎样从excel表中提取符合某一条件的数据,并生成一张新表?
1、首先明确需求,表一中只有名字,缺少性别。2、表二中有姓名和性别信息。此时要表一的第二列要获取表二的第二列信息。3、将光标放在表一的B2单元格。4、点击上方的“f(x)”插入函数。5、找到VLOOKUP函数并点击下方的“确定”。6、第一个参数为A2,即前面对应的姓名。7、第二个参数为“sheet2”...

如何自动提取跨工作表的数据?
1. 理解VLOOKUP函数的基本原理:VLOOKUP函数是Excel中用于查找并提取数据的函数。其基本结构为`=VLOOKUP`。其中,“查找范围”可以跨工作表进行设定。2. 设置跨工作表的查找范围:要实现跨工作表的数据提取,首先需要在VLOOKUP函数的查找范围中指定另一个工作表的数据范围。这可以通过在工作表名后加上感叹号...

相似回答