Excel的数据筛选功能
2009-02-16 信息来源:电脑学习网
视力保护: 【大 中 小】【打印本页】【关闭窗口】
Excel中提供了两种数据的筛选操作,即“自动筛选”和“高级筛选”。如何区分这两种筛选模式,以便熟练掌握和应用,让我们来看看吧:
自动筛选
“自动筛选”一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。某单位的职工工资表,打开“数据”菜单中“筛选”子菜单中的“自动筛选” 命令,以“基本工资”字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。还可以根据条件筛选出基本工资在某一范围内符合条件的记录,“与”、“或”来约束区分条件。如图2,根据给定条件筛选出基本工资大于等于300且小于350的记录。另外,使用“自动筛选”还可同时对多个字段进行筛
自动筛选
“自动筛选”一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。某单位的职工工资表,打开“数据”菜单中“筛选”子菜单中的“自动筛选” 命令,以“基本工资”字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。还可以根据条件筛选出基本工资在某一范围内符合条件的记录,“与”、“或”来约束区分条件。如图2,根据给定条件筛选出基本工资大于等于300且小于350的记录。另外,使用“自动筛选”还可同时对多个字段进行筛
选操作,此时各字段间限制的条件只能是“与”的关系。如筛选出“基本工资”和“职务工资”都超过380的记录。
高级筛选
“高级筛选”一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来;也可以在新的位置显示筛选结果,不符合的条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的比对了。
例如我们要筛选出“基本工资”或“职务工资”超过380且“实发”工资超过700的符合条件的记录,用“自动筛选”就无能为力了,而“高级筛选”可方便地实现这一操作。将“基本工资”、“职务工资”和“实发”三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),所示位置输入条件,条件放在同一行表示“与”的关系,条件不在同一行表示“或”的关系。即为上述操作在新的位置(B20起始位置)筛选的结果。
高级筛选
“高级筛选”一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来;也可以在新的位置显示筛选结果,不符合的条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的比对了。
例如我们要筛选出“基本工资”或“职务工资”超过380且“实发”工资超过700的符合条件的记录,用“自动筛选”就无能为力了,而“高级筛选”可方便地实现这一操作。将“基本工资”、“职务工资”和“实发”三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),所示位置输入条件,条件放在同一行表示“与”的关系,条件不在同一行表示“或”的关系。即为上述操作在新的位置(B20起始位置)筛选的结果。
两种筛选操作的比较
由此我们不难发现,“自动筛选”一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中,操作起来比较简单,初学者对“自动筛选”也比较熟悉。若要筛选的多个条件间是“或”的关系,或需要将筛选的结果在新的位置显示出来那只有用“高级筛选”来实现了。 一般情况下,“自动筛选”能完成的操作用“高级筛选”完全可以实现,但有的操作则不宜用“高级筛选”,这样反而会使问题更加复杂化了,如筛选最大或最小的前几项记录。
在实际操作中解决数据筛选这类问题时,只要我们把握了问题的关键,选用简便、正确的操作方法,问题就能迎刃而解了。
在日常办公应用中,我们经常会遇到将一个表格中各行内容连接起来作为一列形成新表的情况,Word中没有现成的功能,忽然想起Excel中“选择性粘贴”中的“转置”功能,但实际操作一下才发现,它只能将表格的行、列位置互换一下,不能达到上述目的。笔者经过多次实践,终于到一套可以让表格任意纵、横的方法。
由此我们不难发现,“自动筛选”一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中,操作起来比较简单,初学者对“自动筛选”也比较熟悉。若要筛选的多个条件间是“或”的关系,或需要将筛选的结果在新的位置显示出来那只有用“高级筛选”来实现了。 一般情况下,“自动筛选”能完成的操作用“高级筛选”完全可以实现,但有的操作则不宜用“高级筛选”,这样反而会使问题更加复杂化了,如筛选最大或最小的前几项记录。
在实际操作中解决数据筛选这类问题时,只要我们把握了问题的关键,选用简便、正确的操作方法,问题就能迎刃而解了。
在日常办公应用中,我们经常会遇到将一个表格中各行内容连接起来作为一列形成新表的情况,Word中没有现成的功能,忽然想起Excel中“选择性粘贴”中的“转置”功能,但实际操作一下才发现,它只能将表格的行、列位置互换一下,不能达到上述目的。笔者经过多次实践,终于到一套可以让表格任意纵、横的方法。
方法主要是借助Word中“文字与表格相互转换”功能与“高级替换”功能的配合使用,具体步骤如下:
1.将表格转换成文字
选定整个表格后,执行“表格→转换→表格转换成文字”,在弹出的“将表格转换成文字”对话框中选择默认的文字分隔符“制表符”,然后单击[确定]按钮。此时原表格中的表格线全部消失,各列内容以空格分隔。
2.将各行内容连接起来,以列的形式出现
(1)选中文字中两列间的空格部分,并从“编辑”菜单中执行“复制”命令,将列间空格存放在剪贴板中,待稍后替换时使用。
(2)选中刚刚转换好的文字内容部分,执行“编辑→替换”,在弹出的“查和替换”对话框中的“查内容”文本框后单击鼠标,定位好插入点,将步骤1中复制的空格从剪贴板上剪切出来。
注意:由于此对话框中不支持鼠标右击,也不支持菜单中的“粘贴”操作,所以此处只能使用“粘贴”命令的快捷键:“Ctrl+V”。
(3)用鼠标将插入点定位在对话框中“替换为”文本框的后边,点击对话框左下角的[高级]按钮,将对话框下部折叠部分展开,单击[特殊字符]按钮,在弹出的列表中选择最上方的“段落标记”,此时“替换为”文本框中的内容显示为“^p”。
(4)单击对话框中部的[全部替换]按钮,在出现的“Word已完成对所选内容的搜索,共替换XX处。是否搜索文档其余部分?”提示信息中点击[否]结束替换操作。
3.去除出现的空白行
注意:由于此对话框中不支持鼠标右击,也不支持菜单中的“粘贴”操作,所以此处只能使用“粘贴”命令的快捷键:“Ctrl+V”。
(3)用鼠标将插入点定位在对话框中“替换为”文本框的后边,点击对话框左下角的[高级]按钮,将对话框下部折叠部分展开,单击[特殊字符]按钮,在弹出的列表中选择最上方的“段落标记”,此时“替换为”文本框中的内容显示为“^p”。
(4)单击对话框中部的[全部替换]按钮,在出现的“Word已完成对所选内容的搜索,共替换XX处。是否搜索文档其余部分?”提示信息中点击[否]结束替换操作。
3.去除出现的空白行
再次执行“编辑→替换”,用上述方法,将两个“段落标记”全部替换为一个“段落标记”(即在“查内容”后输入“^p^p”,在“替换为”后输入“^p”),为了将全部空白行都剔除,此时应多次点击对话框中[全部替换]按钮,直至提示“已完成0次替换”,则表示已将全部空行删除。
4.将文字转换成表格
选定全部文字内容后,执行“表格→转换→文字转换成表格”。在弹出的“将文字转换成表格”对话框中“文字分隔位置”处选择默认的 “段落标记”,然后单击excel函数数组公式编辑方法[确定]按钮,此时一张新表就初步完成了。
5.后期处理
给新表添加必要的项目列、添加标题、格式化,之后就一切OK了!
再引申一下,若是由列表转换成横表,又该如何操作呢?一起动动脑筋吧:)。
用Excel怎样统计出学生成绩各分数段内的人数分布呢?很多文章都推荐使用CountIF函数,可是每统计一个分数段都要写一条函数,十分麻烦。例如,要在C58:C62内统计显示C2:C56内小于60分、60至70之间、70至80之间、80至90之间、90至100之间的分数段内人数分布情况,要输入以下5条公式:
1. 在C58内输入公式统计少于60分的人数:=CountIF(C2:C56,"<60")
2. 在C59内输入公式统计90分至100之间的人数:=CountIF(C2:C56,">=90")
3. 在C60内输入公式统计80至90之间的人数:=CountIF(C2:C56,">=80")-CountIF(C2:C56,">=90"),
4. 在C61内输入公式统计70到80之间的人数:=CountIF(C2:C56,">=70")-CountIF(C2:C56,
用Excel怎样统计出学生成绩各分数段内的人数分布呢?很多文章都推荐使用CountIF函数,可是每统计一个分数段都要写一条函数,十分麻烦。例如,要在C58:C62内统计显示C2:C56内小于60分、60至70之间、70至80之间、80至90之间、90至100之间的分数段内人数分布情况,要输入以下5条公式:
1. 在C58内输入公式统计少于60分的人数:=CountIF(C2:C56,"<60")
2. 在C59内输入公式统计90分至100之间的人数:=CountIF(C2:C56,">=90")
3. 在C60内输入公式统计80至90之间的人数:=CountIF(C2:C56,">=80")-CountIF(C2:C56,">=90"),
4. 在C61内输入公式统计70到80之间的人数:=CountIF(C2:C56,">=70")-CountIF(C2:C56,
">=80"),
5. 在C62内输入公式统计60到70之间的人数:=CountIF(C2:C56,">=60")-CountIF(C2:C56,">=70")。
如果要把0至10之间、10至20之间、20至30……90至100之间这么多个分数段都统计出来,就要写上十条公式了。
其实,Excel已经为我们提供了一个进行频度分析的FreQuency数组函数,它能让我们用一条数组公式就轻松地统计出各分数段的人数分布。例如,我们要统计出C2:C56区域内0至100每个分数段内的人数分布:
1. 在B58:B68内输入:0、9.9、19.9、……9.9、99.9、100。
2. 用鼠标选择区域C58至C69,在编辑栏内输入“=FreQuency(C2:C56,B58:B69)”。
5. 在C62内输入公式统计60到70之间的人数:=CountIF(C2:C56,">=60")-CountIF(C2:C56,">=70")。
如果要把0至10之间、10至20之间、20至30……90至100之间这么多个分数段都统计出来,就要写上十条公式了。
其实,Excel已经为我们提供了一个进行频度分析的FreQuency数组函数,它能让我们用一条数组公式就轻松地统计出各分数段的人数分布。例如,我们要统计出C2:C56区域内0至100每个分数段内的人数分布:
1. 在B58:B68内输入:0、9.9、19.9、……9.9、99.9、100。
2. 用鼠标选择区域C58至C69,在编辑栏内输入“=FreQuency(C2:C56,B58:B69)”。
3. 按“Crtl+Shift+Enter”组合键产生数组公式“={FreQuency(C2:C56,B58:B69)}”,这里要注意“{ }”不能手工键入,必须按下“Crtl+Shift+Enter”组合键由系统自动产生。完成后C58:C69将所示的分数分布情况。
用CountIF函数统计分数段的方法流传很广,但效率并不高,提出这个新方法希望对大家有所帮助。另外,在Excel的帮助里也有一个用FreQuency函数统计分数段的简单范例,大家可以参考。
Excel数据筛选的技巧
2008年12月01日 00:12 文/ 张剑悦 培训杂志 已有3773位网友访问本文
对于Office一族来说,最常用也是最困扰他们的工作有两个:一个是在浩如烟海的众多数据中,如何快速到和检索出所需的信息;另一个则是如何轻松得到分类汇总的结果和统计报表数据。下面,我们将向大家介绍用Excel对数据信息进行筛选、检索的一些操作技巧和经验。
日前,在北京召开了第29届奥林匹克运动盛会,来北京参赛旅游的中外宾客络绎不绝,为了更好的了解北京的特小吃和各式美食,所以在网络中非常流行一个“吃在北京”的文档。该文档是用Excel制作的,文档的标题行中从“店名”到“菜系”,从“地址”到“电话”,从“招牌菜”到“人均消费”可谓一应俱全。为了查询方便,该数据表还设置了“自动筛选”功能,可通过标题右侧的下拉列表来对“餐厅”、“菜系”或“消费价格”等按照条件进行筛选查看,如图1所示
这种通过下拉列表设置条件的筛选在Excel中被称作“自动筛选”,这种筛选可以将列表中的数据直接当作条件,也可以通过“自定义”条件的设置进行某个字段“与”、“或”查询,由于自动筛选的应用较为简单,在此,不再做赘述和讲解。
现在,我们要探讨的是自动筛选的兄弟——高级筛选。虽然自动筛选或高级筛选,在Excel中都可以起到根据条件查询数据的作用,是数据分析必不可少的工具和手段,但是高级筛选才是最好的数据查询方式。因为它不仅包含了所有自动筛选的操作,而且还有很多自动筛选望尘莫及的功能,如:多字段复杂条件的“与”、“或”关系查询;将查询结果复制到其他表;实现条件的“模糊查询”;与“宏”和“窗体控件”结合等等。
多字段复杂条件的“与”、“或”关系查询并将结果复制到其他数据表
用Excel的“自动筛选”功能来对数据表进行筛选查询,若对多字段设置了筛选条件,那么结果一定是多字段的条件同时满足,只能做到多字段间条件“与”的查询。在如图2所示的人事表中,若设置了“年龄”的筛选条件为“>40”,又设置了文化程度为“大学本科”,那么筛选的结果就一定是年龄大于40岁的大学本科生职工,如图2所示。
用Excel的“自动筛选”功能来对数据表进行筛选查询,若对多字段设置了筛选条件,那么结果一定是多字段的条件同时满足,只能做到多字段间条件“与”的查询。在如图2所示的人事表中,若设置了“年龄”的筛选条件为“>40”,又设置了文化程度为“大学本科”,那么筛选的结果就一定是年龄大于40岁的大学本科生职工,如图2所示。
下面我们对该人事表设置一个复杂的查询条件,并将查询结果复制到一个新的数据表之中,让大家感受一下Excel高级筛选功能的强大之处。
查询条件有三个,第1个是查到“20至30岁之间的研究生”;第2个是查到“本科学历的编审”;第3个是查到“本科学历的副编审”。这3个条件只要满足一个就将它筛选出来。很显然,这是一个多字段间复杂的“与”、“或”关系查询,这种情况只能使用Execl的高级筛选才能实现,下面就来看看操作过程:
设置筛选条件区
高级筛选的前提是在数据表的空白处设置一个带有标题的条件区域,这个条件区有3个注意要点:
·条件的标题要与数据表的原有标题完全一致;
·多字段间的条件若为“与”关系,则写在一行;
·多字段间的条件若为“或”关系,则写在下一行。
根据这个特点,所以应在数据表旁将条件区域设置完成,如图3所示。
·条件的标题要与数据表的原有标题完全一致;
·多字段间的条件若为“与”关系,则写在一行;
·多字段间的条件若为“或”关系,则写在下一行。
根据这个特点,所以应在数据表旁将条件区域设置完成,如图3所示。
提示:本例要查的人员有3类,这3类人员是“或”关系,所以将条件写在了3行。每行的字段条件就是“与”关系,第1行要查的是年龄在20至30之间的研究生;第2行要查的是学历为大学本科的编审;第3行要查的则是学历为大学本科的副编审。
设置“高级筛选”对话框
高级筛选的条件区创建完成后,就可以进行“高级筛选”的操作了。由于要将筛选结果复制到新的数据表,所以先要新建一个数据表,并将光标定在该数据表之中;然后选择【数据】菜单【筛选】命令下的【高级筛选】命令,打开“高级筛选”对话框。
在对话框中要做3个设置:
在对话框中要做3个设置:
·“列表区域”是待筛选查询的人事表所有数据区域;
·“条件区域”是刚刚创建的“与”、“或”条件区域;
·“复制到”则是筛选结果所要放入的新建数据表。
设置完成后的“高级筛选”对话框,如图4所示。
·“条件区域”是刚刚创建的“与”、“或”条件区域;
·“复制到”则是筛选结果所要放入的新建数据表。
设置完成后的“高级筛选”对话框,如图4所示。
查看“高级筛选”结果
“高级筛选”对话框设置完成后,便可单击【确定】按钮来查看筛选的结果了,如图5所示。
在这个结果中,一共有3类人员,一类是年龄在20至30之间的研究生;第2类是学历为大
在这个结果中,一共有3类人员,一类是年龄在20至30之间的研究生;第2类是学历为大
学本科的编审;第3类则是学历为大学本科的副编审。至此,通过以上3步,我们对这个人事表进行了多字段复杂条件的“与”、“或”关系查询,并将结果复制到了其他数据表之中。
实现条件的“模糊查询”
高级筛选不仅可以设置多字段复杂条件的“与”、“或”关系查询,而且还可以配合“通配符”实现筛选条件的“模糊查询”模式。
在“高级筛选”中,通配符主要使用的是键盘的【*】符号。“*”表示任意字符,所以若将“*”使用在高级筛选的条件中,便可以实现模糊查询的效果。例如在上例人事表中,若想查询“籍贯”为“山东”籍的职员,也就是在“籍贯”字段中起始文字是“山东”的职员,那么就应将筛选条件区的条件设定成“山东*”。
右侧表数据是按照“模糊查询”的方式筛选出的查询结果,如图6所示。
在“高级筛选”中,通配符主要使用的是键盘的【*】符号。“*”表示任意字符,所以若将“*”使用在高级筛选的条件中,便可以实现模糊查询的效果。例如在上例人事表中,若想查询“籍贯”为“山东”籍的职员,也就是在“籍贯”字段中起始文字是“山东”的职员,那么就应将筛选条件区的条件设定成“山东*”。
右侧表数据是按照“模糊查询”的方式筛选出的查询结果,如图6所示。
与“宏”和“窗体控件”结合制作交互效果
Excel的高级筛选操作,事先都会创建条件区,利用这个条件区与窗体控件和宏配合,就可以制作出带有交互功能的数据查询效果。
所谓交互功能的数据查询,是在创建的条件区旁,用“窗体控件”为数据表添加两个按钮,分别是显示【全部】按钮和【筛选】按钮。当单击【筛选】按钮后,便可以根据条件区的条件筛选出结果,如图7所示。
所谓交互功能的数据查询,是在创建的条件区旁,用“窗体控件”为数据表添加两个按钮,分别是显示【全部】按钮和【筛选】按钮。当单击【筛选】按钮后,便可以根据条件区的条件筛选出结果,如图7所示。
当单击【全部】按钮后,便会显示原数据表的所有数据信息,如图8所示。
要想实现这种效果,需要用窗体控件按钮和“宏”或“VBA”配合。可以事先先录制两个宏,一个宏是根据条件区域进行“高级筛选”,另一个宏则是显示所有数据信息,然后将窗体控件的两个按钮分别指定这两个宏即可。
当然也可以使用“VBA”的编辑,若使用VBA编程,则“筛选”用的宏代码为:
Sub FilterA()
Range("A5:I235").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("k2:o4"), Unique:=False
End Sub
“全部”显示的宏代码为:
Sub ShowAll()
On Error GoTo Errline
ActiveSheet.ShowAllData
Errline:
Exit Sub
“全部”显示的宏代码为:
Sub ShowAll()
On Error GoTo Errline
ActiveSheet.ShowAllData
Errline:
Exit Sub
“高级筛选”是Excel中一种非常有效的数据分析方法和数据查询方式。在Office的大家庭中,还有一个与Excel非常有关系的软件就是Access数据库。在Access数据库中,单一表查询用的就是“高级筛选”功能,单从这点就可以佐证,像Excel这种以表为单位存放数据的软件,数据查询最好的方式其实就是“高级筛选”。Excel的高级筛选在使用上并不复杂,只要把握好条件区的设置,就能查询和检索到符合条件的数据信息。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论