Excel精英培训网

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

[已解决]多条件提取数据

[复制链接]
发表于 2012-1-13 11:41 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-1-13 11:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunjing-zxl 于 2012-1-13 14:42 编辑


  1. Sub aa()
  2.     Dim arr, str1 As String, str2 As String
  3.     Dim i As Long, j As Long, n As Long
  4.     str1 = Cells(2, 1)
  5.     str2 = Cells(2, 2)
  6.     Range(Cells(5, 1), Cells([A65536].End(xlUp).Row, 15)).ClearContents
  7.     With Sheets("成绩登记表")
  8.         arr = .Range(.Cells(4, 1), .Cells(.[A65536].End(xlUp).Row, 16))
  9.     End With
  10.     ReDim arr1(1 To UBound(arr), 1 To 14)
  11.     For i = 1 To UBound(arr)
  12.         If arr(i, 2) = str1 And arr(i, 3) = str2 Then
  13.             n = n + 1
  14.             arr1(n, 1) = arr(i, 1)
  15.             For j = 4 To 16
  16.                 arr1(n, j - 2) = arr(i, j)
  17.             Next j
  18.         End If
  19.     Next i
  20.     Range("A5").Resize(UBound(arr1), 14) = arr1
  21.     If n = 0 Then
  22.         Range("A5") = "无"
  23.     End If
  24. End Sub
复制代码
附件: 教育质量检测成绩登记表及质量分析表-sunjing.rar (275.8 KB, 下载次数: 117)

点评

这个悬赏最佳会自动变成2楼  发表于 2012-1-13 16:14
这人好贼,用道具抢二楼,我的二楼没了··  发表于 2012-1-13 15:28
回复

使用道具 举报

发表于 2012-1-13 11:52 | 显示全部楼层
本帖最后由 hytsky 于 2012-1-13 14:55 编辑

我来看看的```答案在附件中,仅供参考{:101:}好的话给个最佳就行了

教育质量检测成绩登记表及质量分析表.rar

274.31 KB, 下载次数: 24

点评

我没用过道具啊,我也纳闷,怎么会到了2楼  发表于 2012-1-13 15:30
回复

使用道具 举报

发表于 2012-1-13 12:40 | 显示全部楼层
请根据A2单元格(年级)、B2单元格(班级)数据,提取A列数据(学号)

提取到哪呢?
回复

使用道具 举报

发表于 2012-1-13 12:46 | 显示全部楼层
  1. =INDEX(成绩登记表!A:O,SMALL(IF((成绩登记表!B$4:B$212=班级成绩打印!A$2)*(成绩登记表!C$4:C$212=班级成绩打印!B$2),ROW($4:$212),4^8),ROW($1:$209)),COLUMN(A:O))&""
复制代码

区域数组
速度还可以
教育质量检测成绩登记表及质量分析表.rar (274.54 KB, 下载次数: 16)
回复

使用道具 举报

发表于 2012-1-13 12:51 | 显示全部楼层
=INDEX(成绩登记表!A:A,SMALL(IF((成绩登记表!$B4:$B10000=A$2)*(成绩登记表!$C$4:$C$10000=B$2),ROW($B$4:$B$10000),65536),ROW(A1)))

数组公式 ctrl+shift+enter
回复

使用道具 举报

发表于 2012-1-13 12:54 | 显示全部楼层
=IF(A5="","",VLOOKUP($A5,成绩登记表!$A:$R,COLUMN(D:D),0))
回复

使用道具 举报

发表于 2012-1-13 13:10 | 显示全部楼层
看看先                           
回复

使用道具 举报

发表于 2012-1-13 13:10 | 显示全部楼层
我的方法和5楼一样,只知道这一种。。。。
{=INDEX(成绩登记表!A:A,SMALL(IF((成绩登记表!$B$4:$B$212=班级成绩打印!$A$2)*(成绩登记表!$C$4:$C$212=班级成绩打印!$B$2),ROW(成绩登记表!$B$4:$B$212),4^8),ROW(A1)))&""}
回复

使用道具 举报

发表于 2012-1-13 13:18 | 显示全部楼层
学习了                    
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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