excel中如何查找引用多个表格中某一天的数据?

我的一个工作表中有四个工作薄,分别是aa、bb、cc、总表。在前三个表中有每天的记录数据。现在是否可以通过一个按钮或者一个宏命令实现功能:在总表中点击按钮1,可以将前三个表中含有特定日期(如总表中J1单元格)的数据,自动复制到总表中!

1.表1,统计清单表,一般是公司或者个人习惯或制作好的表格。(代号要查找的就是代号一栏)。我们要实现的结果就是,当我输入代号时,其他表格就相应的填入了其对应值。

2.表2,待调用的数据清单表,要求其第一列必须为要查找的字段或值的一列。(代号一栏已经放置在第一列中)。

3.两个表都放入同一个文件夹中。

4.现在代号中输入第一个查找的代号DT-01,(避免后面查找字符串出错),

5.先单击名称后面的空单元格,点击调用函数按钮,调用vlookup函数来查找。

6.建立查找关系。点击确定,就可以看到所对应的名称“手机”已经进入单元格中。

关于Vlookup函数内容解析:

Lookup_value“唯一值”为需要在数组第一列中查找作参考的关系数值,它可以是数值或文字符串。比如:举例中的代号就是查找值。Table_array“区域”:数值区域,如“A:D”,就是您所有想引用过来的数据(想要引用数据的表格),一般情况直接点击选择就可以自动添加。

Col_index_unm“列序号”:引用区域值里面的第一列,比如从A到D共有4列,想引用B列数值过来,那么就选择2,因为B列在区域的第二列,其它也是这么推算,此例子中引入的是名称,其对应第2列,就是2,如果引入的是制造商对应的就是5,所以就是5了。

Range_lookup“逻辑值”:一般填TRUE或FALSE。指函数 VLOOKUP 返回时是精确匹配还还是近似匹配。 通常都是写false。

7.这样就添加完了所以的关系,后面直接在代号中输入代号,其他的都不用修改,会自动进行查找更新。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-20

亲,代码如下。

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧汇总Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。

 

Sub hz()
Dim i, r, j, n As Long
n = 1
For i = 1 To Sheets.Count
    If Sheets(i).Name <> ActiveSheet.Name Then
        If Range("A1").Value = "" Then Sheets(i).Range("A1").Resize(1, 6).Copy Range("A1")
        r = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row
        For j = 2 To r
            If Sheets(i).Range("A" & j).Value = Range("J1").Value Then n = n + 1: Sheets(i).Range("A" & j).Resize(1, 6).Copy Range("A" & n)
        Next
    End If
Next
End Sub

本回答被提问者和网友采纳
第2个回答  2015-01-20
可以使用VBA代码就能实现你的要求
Sub B()
Dim X, Y, h As Integer
h = 2

For X = 2 To Sheets.Count
Y = Sheets(X).Range("i65536").End(xlUp).Row
If Sheets("汇总表").rangge("j1") = Sheets(X).Cells(h, 1) Then
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 1)
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 2)
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 3)
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 4)
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 5)
Sheets("汇总表").Cells(h, 1) = Sheets(X).Cells(h, 6)
End If
h = h + 1
Next X

End Sub

用上边代码写入到宏模块中就ok
第3个回答  2015-01-20
Sub test()
Dim i&, iMax&
Dim ii&
Dim arr(1 To 100000, 1 To 6)
For i = 1 To Sheets.Count - 1
With Sheets(i)
iMax = .Cells(.Rows.Count, 1).End(3).Row
For k = 1 To iMax
If .Cells(k, 1) = Sheets("总表").[j1] Then
n = n + 1
For ii = 1 To 6
arr(n, ii) = .Cells(k, ii)
Next
End If
Next
End With
Next
Sheets("总表").[a1].Resize(n, 6) = arr
End Sub
没有数据源测试,差不多就是这样了,自行测试,应该没问题!
第4个回答  2015-01-20
首先更正一下,你有一个工作薄里面有四个工作表。
相似回答