ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3865|回复: 10

请教如何提取一定范围值的数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-8-20 16:23 | 显示全部楼层 |阅读模式
表中有不同班级的学生考试6次总分数据
如果某次考试总分在300-320之间,则把满足300-320分的考试总分,学生的班级、姓名,考号都一并提取在同一工作表的新区域中
请教怎么做,希望能够详细解答,我也想通过这个现实例子学习一下,谢谢。
数据提取实例表.rar (29.83 KB, 下载次数: 30)

TA的精华主题

TA的得分主题

发表于 2017-8-20 18:12 | 显示全部楼层
K2:N2 下拉{=INDIRECT(TEXT(SMALL(IF(($D$2:$I$315>=300)*($D$2:$I$315<=320),ROW(D$2:I$315)*1000+COLUMN($D2:$I315)^(COLUMN(A1)=4)+(COLUMN(A1)-1)*(COLUMN(A1)<4)),ROW(A1)),"!R0C000"),)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-21 06:59 | 显示全部楼层
hcm19522 发表于 2017-8-20 18:12
K2:N2 下拉{=INDIRECT(TEXT(SMALL(IF(($D$2:$I$315>=300)*($D$2:$I$315

这个公式看着好复杂啊
可以解释一下公式和各参数的作用含义吗?谢谢。

TA的精华主题

TA的得分主题

发表于 2017-8-21 11:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
K2:L17{=IFERROR(INDIRECT(TEXT(SMALL(IF(($B$2:$F$11>=$H$2)*($B$2:$F$11<=$I$2),ROW(B$2:F$11)*1000+COLUMN($B2:$F11)^(COLUMN(A1)=2)+(COLUMN(A1)-1)*(COLUMN(A1)<2)),ROW(A1)),"!R0C000"),),"")
3511.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-22 17:50 | 显示全部楼层
hcm19522 发表于 2017-8-21 11:42
K2:L17{=IFERROR(INDIRECT(TEXT(SMALL(IF(($B$2:$F$11>=$H$2)*($B$2:$F$11

多谢,非常感谢您的详细解答,虽然还不太懂,但我会努力的,再次感谢。

TA的精华主题

TA的得分主题

发表于 2017-8-24 19:04 | 显示全部楼层
  1. Sub 提取条件数据_Click()

  2. Dim lastrow As Long, lastcol As Long, row As Long, col As Long, n As Long
  3. n = 1
  4. lastrow = Cells(Rows.Count, 1).End(xlUp).row
  5. lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
  6. For row = 2 To lastrow
  7.     For col = 4 To lastcol
  8. If Cells(row, col).Value >= 300 And Cells(row, col).Value <= 320 Then
  9. n = n + 1
  10. Cells(n, 13) = Cells(row, 1).Text
  11. Cells(n, 14) = Cells(row, 2).Text
  12. Cells(n, 15) = Cells(row, 3).Text
  13. Cells(n, 16) = Cells(row, col).Text
  14. End If
  15. Next col
  16. Next row
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-26 08:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-8-28 10:20 | 显示全部楼层
zhibiaodi 发表于 2017-8-26 08:16
这个是VBA吗?
像编程一样,感觉有点高大上啊
非常感谢。

是的,就是用一个循环查找

TA的精华主题

TA的得分主题

发表于 2017-9-9 16:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

您好,大神,请教一下,就是假如只需返回   班级、姓名、学号三个字段,那么返回的结果会有重复值,要在VBA里再加些什么代码,可以去除重复值?

TA的精华主题

TA的得分主题

发表于 2017-9-12 09:23 | 显示全部楼层
喝酒吃肉 发表于 2017-9-9 16:13
您好,大神,请教一下,就是假如只需返回   班级、姓名、学号三个字段,那么返回的结果会有重复值,要在V ...

添加一下附件,并备注一下要实现的效果,我看看
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 15:15 , Processed in 0.047349 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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