Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2925|回复: 8

[已解决]按条件查找数据的问题求助高手

[复制链接]
发表于 2014-8-11 20:11 | 显示全部楼层 |阅读模式
本帖最后由 小小玩童 于 2014-8-11 21:44 编辑

附件 按条件查找.rar (204.41 KB, 下载次数: 28)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-8-11 21:00 | 显示全部楼层
好像这个用公式也可以做的,试过了,数据少的时候速度上还可以,没用大数据试过
sheet3!A1=INDEX(Sheet2!A:A,SMALL(IF((TRANSPOSE(Sheet1!$B$1:$B$4)=Sheet2!$B$1:$B$747)*(TRANSPOSE(Sheet1!$D$1:$D$4)=Sheet2!$D$1:$D$747)*(TRANSPOSE(Sheet1!$E$1:$E$4)=Sheet2!$E$1:$E$747),ROW($1:$747),4^10),ROW()))&“”三键横拉下拉
回复

使用道具 举报

发表于 2014-8-11 21:01 | 显示全部楼层
按条件查找.rar (206.32 KB, 下载次数: 8)
回复

使用道具 举报

发表于 2014-8-11 21:03 | 显示全部楼层
高筛
gjsx.gif
回复

使用道具 举报

 楼主| 发表于 2014-8-11 21:07 | 显示全部楼层
tgydslr 发表于 2014-8-11 21:01

谢谢老师帮助。表2的数据多的时候,达几十万行,公式有点力不从心啊。希望有代码一键解决。
回复

使用道具 举报

发表于 2014-8-11 21:13 | 显示全部楼层
小小玩童 发表于 2014-8-11 21:07
谢谢老师帮助。表2的数据多的时候,达几十万行,公式有点力不从心啊。希望有代码一键解决。

不好意思,俺的代码很菜,写出来还不如公式呢,还是等楼下的给出代码吧
回复

使用道具 举报

发表于 2014-8-11 21:19 | 显示全部楼层    本楼为最佳答案   
  1. Sub Test()
  2.     Dim Conn As Object, Rst As Object
  3.     Dim strConn As String, SQL As String
  4.     Dim i As Integer, PathStr As String
  5.     Set Conn = CreateObject("ADODB.Connection")
  6.     Set Rst = CreateObject("ADODB.Recordset")
  7.     PathStr = ThisWorkbook.FullName
  8.     Select Case Application.Version * 1
  9.     Case Is <= 11
  10.         strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
  11.     Case Is >= 12
  12.         strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=NO"";"""
  13.     End Select
  14.     Conn.Open strConn
  15.     SQL = "select b.F1,b.F2,b.F3,b.F4,b.F5 from [Sheet1$]a left join [Sheet2$]b on a.F2=b.F2 and a.F4=b.F4 and a.F5=b.F5"
  16.     Set Rst = Conn.Execute(SQL)
  17.     With Sheet3
  18.         .Cells.Clear
  19.         .Range("A1").CopyFromRecordset Rst
  20.     End With
  21.     Rst.Close
  22.     Conn.Close
  23.     Set Conn = Nothing
  24.     Set Rst = Nothing
  25. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
小小玩童 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-8-12 09:57 | 显示全部楼层
xdragon 发表于 2014-8-11 21:19

老师您好,谢谢您帮助。试了一下代码,发现出来的结果,少了后面两列。即:没有把整个一个的数据,提取出来。如下图
1.jpg

完整结果应为:

2.jpg

不知能否修正一下?谢谢了。
回复

使用道具 举报

发表于 2014-8-12 13:54 | 显示全部楼层
SQL = "select b.F1,b.F2,b.F3,b.F4,b.F5,b.F6,b.F7 from [Sheet1$]a left join [Sheet2$]b on a.F2=b.F2 and a.F4=b.F4 and a.F5=b.F5"

把这句稍微修改下就好了

评分

参与人数 1 +1 收起 理由
小小玩童 + 1 赞一个!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 11:57 , Processed in 0.205389 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表