ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

Excel2007之---高级筛选

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-6-1 09:59 | 显示全部楼层 |阅读模式

高级筛选是比较有用的功能。特别是针对复杂条件的筛选。

最好对要筛选的格式运用数据库格式:即第一行是列标题,每列代表一个类型的数据。

执行高级筛选的方法:数据---排序和筛选---高级(快捷键是Alt---A---Q),

如图:

高级筛选有3个区域,分别是筛选区域,条件区域,复制到区域(即结果区域)。注意3个区域都有标题行。如图:

执行高级筛选后,就会出现一个对话框,对这个对话框的理解非常重要,如图:

条件区域最好放在筛选区域的上方或者是下方,并至少留一个空行与之相隔。条件区域至少由2行组成,第1行是标题行,第2行和其它行是输入的筛选条件。

条件区域的标题必须与筛选区域的标题保持一致!而要保持一致的方法是复制---粘贴筛选区域的标题是最好的方法。条件区域不必包括列表中的每个标题。不需要筛选的列可以不在条件区域内!

我在论坛上看到过这方面帖子,由于筛选文件大,标题多,就有输入错误,找不到原因的情况存在!


复制到区域也包含"标题行",它只能在执行高级筛选命令的工作表上!这一点限制了高级筛选的运用。我们必须知道结果区域放在什么工作表上,就在它上面执行高级筛选!提供一个有关这方面的帖子,以更好理解:http://club.excelhome.net/viewthread.php?tid=325593

您可以将某个区域命名为“Criteria”,此时“条件区域”框中就会自动出现对该区域的引用。您也可以将要筛选的数据区域命名为“Database”,并将要粘贴行的区域命名为“Extract”,这样,这些区域就会相应地自动出现在“数据区域”“复制到”框中。

我们知道把列表命名为Database,列表可以自动扩展,这点可以用在高级筛选的筛选区域上。

将筛选所得的行复制到其他位置时,可以指定要复制的列。在筛选前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。而当筛选时,请在“复制到”框中输入对被复制列标签的引用。这样,复制的行中将只包含已复制过标签的列。

[此贴子已经被作者于2008-6-1 10:53:30编辑过]

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

Excel2007之---高级筛选

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-6-1 10:20 | 显示全部楼层

Excel 在筛选文本数据时不区分大小写。但是,您可以使用公式来执行区分大小写的搜索。使用的函数是EXACT函数。

EXACT函数执行区分大小的搜索,并且返回的是逻辑值,是为高级筛选量身定做的一个函数。有一个事例文件,取自函数的帮助文件。

需要注意的是,执行一次高级筛选后,按F5键---输入   _FilterDatabase   ---确定,可以选择执行高级筛选的数字区域。你按F5键时,还会发现其它两个名称,一个是条件区域名称,一个是复制到区域,如图:

9SEvodOd.rar (143.99 KB, 下载次数: 387)


[此贴子已经被作者于2008-7-7 23:04:01编辑过]
C89iA4U4.jpg

5E1Fzsik.rar

21.07 KB, 下载次数: 188

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-6-1 10:21 | 显示全部楼层

高级筛选的VBA应用,有非常重要的作用。它可以快速高效率的提取数据集的子集。

高级筛选语句非常简单,但是却很有用!它是Range.AdvancedFilter,它有4个参数,分别对应高级筛选对话框中4个部分。对话框中的黑色箭头对应高级筛选的单元格使用区域。如图:


下面是一个VBA例子,这段代码是执行高级筛选,它要使用的excel文件如下:


sub 高级筛选()

dim IRange as range

dim ORange as range

dim finarow as integer,nextcol as integer

'上面是声明变量

finarow=cells(65536,1).end(xlup).row

nextcol=cells(1,255).end(xlToleft).column+2

'给行变量,列变量赋值!

Range("D1").copy Destination:=cells(1,nextcol)

set ORange=cells(1,nextcol)

'复制标题单元格,为输出区域定义一个变量ORange

Set IRange=Range("A1").Resize(finarow,nextcol-2)

'定义一个输出变量区域。

IRange.AdvancedFilter Action:=xlFiltercopy,copytorange:=ORange,unique:=True

'使用高级筛选语句

End sub

以上代码为输入区域和输出区域设置对象变量。其实可以简化为:

sub 高级筛选()

[j1]=[d1]

[a1].currentregion.advancedFilter xlFiltercopy,[j1],true

end sub

[此贴子已经被作者于2008-7-9 21:48:08编辑过]
4569BD6S.jpg
Is5mSLzd.jpg

TA的精华主题

TA的得分主题

发表于 2008-6-3 13:56 | 显示全部楼层

辛苦您了!感谢您的付出!

处女帖

TA的精华主题

TA的得分主题

发表于 2008-6-3 14:01 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-7-7 22:24 | 显示全部楼层

高级筛选的有关单词:

Data  数据

Filter 筛选

AutoFilter 自动筛选

Show All 全部显示

Advanced Filter 高级筛选

Action 方式,动作

Filter to List,in-Place 在原来地方显示筛选结果

Copy to another location 将筛选结果复制到其它位置

location 位置,场所

List range 列表单元格区域

Criteria range 条件单元格区域

Copy to  复制到

Criteria 条件

Unique records only 要求记录唯一

Unique 要求

Records 多条记录

only 仅仅,唯一

TA的精华主题

TA的得分主题

发表于 2008-7-9 20:13 | 显示全部楼层
在高级筛选中可否使用数组公式?我测试了一个,好像用不了,而且有的时候用countif不行,只能使用match。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-7-9 20:51 | 显示全部楼层

TA的精华主题

TA的得分主题

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

学习了

TA的精华主题

TA的得分主题

发表于 2008-12-6 15:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 00:53 , Processed in 0.041819 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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