Excel的数据筛选功能
2009-02-16 信息来源:电脑学习网
视力保护:                 】【打印本页】【关闭窗口
     Excel中提供了两种数据的筛选操作,即自动筛选高级筛选。如何区分这两种筛选模式,以便熟练掌握和应用,让我们来看看吧:

    自动筛选

    “自动筛选一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。某单位的职工工资表,打开数据菜单中筛选子菜单中的自动筛选 命令,以基本工资字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。还可以根据条件筛选出基本工资在某一范围内符合条件的记录,来约束区分条件。如图2,根据给定条件筛选出基本工资大于等于300且小于350的记录。另外,使用自动筛选还可同时对多个字段进行筛
选操作,此时各字段间限制的条件只能是的关系。如筛选出基本工资职务工资都超过380的记录。

    高级筛选

    “高级筛选一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来;也可以在新的位置显示筛选结果,不符合的条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的比对了。

    例如我们要筛选出基本工资职务工资超过380实发工资超过700的符合条件的记录,用自动筛选就无能为力了,而高级筛选可方便地实现这一操作。将基本工资职务工资实发三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),所示位置输入条件,条件放在同一行表示的关系,条件不在同一行表示的关系。即为上述操作在新的位置(B20起始位置)筛选的结果。

    两种筛选操作的比较

    由此我们不难发现,自动筛选一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中,操作起来比较简单,初学者对自动筛选也比较熟悉。若要筛选的多个条件间是的关系,或需要将筛选的结果在新的位置显示出来那只有用高级筛选来实现了。 一般情况下,自动筛选能完成的操作用高级筛选完全可以实现,但有的操作则不宜用高级筛选,这样反而会使问题更加复杂化了,如筛选最大或最小的前几项记录。

    在实际操作中解决数据筛选这类问题时,只要我们把握了问题的关键,选用简便、正确的操作方法,问题就能迎刃而解了。

    在日常办公应用中,我们经常会遇到将一个表格中各行内容连接起来作为一列形成新表的情况,Word中没有现成的功能,忽然想起Excel选择性粘贴中的转置功能,但实际操作一下才发现,它只能将表格的行、列位置互换一下,不能达到上述目的。笔者经过多次实践,终于到一套可以让表格任意纵、横的方法。


    方法主要是借助Word文字与表格相互转换功能与高级替换功能的配合使用,具体步骤如下:

    1.将表格转换成文字

    选定整个表格后,执行表格转换表格转换成文字,在弹出的将表格转换成文字对话框中选择默认的文字分隔符制表符,然后单击[确定]按钮。此时原表格中的表格线全部消失,各列内容以空格分隔。

    2.将各行内容连接起来,以列的形式出现

    1)选中文字中两列间的空格部分,并从编辑菜单中执行复制命令,将列间空格存放在剪贴板中,待稍后替换时使用。

    2)选中刚刚转换好的文字内容部分,执行编辑替换,在弹出的查和替换对话框中的查内容文本框后单击鼠标,定位好插入点,将步骤1中复制的空格从剪贴板上剪切出来。

    注意:由于此对话框中不支持鼠标右击,也不支持菜单中的粘贴操作,所以此处只能使用粘贴命令的快捷键:CtrlV”。

    3)用鼠标将插入点定位在对话框中替换为文本框的后边,点击对话框左下角的[高级]按钮,将对话框下部折叠部分展开,单击[特殊字符]按钮,在弹出的列表中选择最上方的段落标记,此时替换为文本框中的内容显示为^p”。

    4)单击对话框中部的[全部替换]按钮,在出现的Word已完成对所选内容的搜索,共替换XX处。是否搜索文档其余部分?提示信息中点击[]结束替换操作。

    3.去除出现的空白行


    再次执行编辑替换,用上述方法,将两个段落标记全部替换为一个段落标记(即在查内容后输入^p^p”,在替换为后输入^p”),为了将全部空白行都剔除,此时应多次点击对话框中[全部替换]按钮,直至提示已完成0次替换,则表示已将全部空行删除。

    4.将文字转换成表格

    选定全部文字内容后,执行表格转换文字转换成表格。在弹出的将文字转换成表格对话框中文字分隔位置处选择默认的 段落标记,然后单击excel函数数组公式编辑方法[确定]按钮,此时一张新表就初步完成了。

    5.后期处理

    给新表添加必要的项目列、添加标题、格式化,之后就一切OK了!

    再引申一下,若是由列表转换成横表,又该如何操作呢?一起动动脑筋吧:)。   

    用Excel怎样统计出学生成绩各分数段内的人数分布呢?很多文章都推荐使用CountIF函数,可是每统计一个分数段都要写一条函数,十分麻烦。例如,要在C58:C62内统计显示C2:C56内小于60分、6070之间、7080之间、8090之间、90100之间的分数段内人数分布情况,要输入以下5条公式:

  1. C58内输入公式统计少于60分的人数:=CountIF(C2:C56,"<60")

  2. C59内输入公式统计90分至100之间的人数:=CountIF(C2:C56,">=90")

  3. C60内输入公式统计8090之间的人数:=CountIF(C2:C56,">=80")-CountIF(C2:C56,">=90")

  4. C61内输入公式统计7080之间的人数:=CountIF(C2:C56,">=70")-CountIF(C2:C56,
">=80")

  5. C62内输入公式统计6070之间的人数:=CountIF(C2:C56,">=60")-CountIF(C2:C56,">=70")

  如果要把010之间、1020之间、2030……90100之间这么多个分数段都统计出来,就要写上十条公式了。

  其实,Excel已经为我们提供了一个进行频度分析的FreQuency数组函数,它能让我们用一条数组公式就轻松地统计出各分数段的人数分布。例如,我们要统计出C2:C56区域内0100每个分数段内的人数分布:

  1. B58:B68内输入:09.919.9……9.999.9100

  2. 用鼠标选择区域C58C69,在编辑栏内输入=FreQuency(C2:C56,B58:B69)”。


  3. Crtl+Shift+Enter”组合键产生数组公式={FreQuency(C2:C56,B58:B69)}”,这里要注意{ }不能手工键入,必须按下Crtl+Shift+Enter”组合键由系统自动产生。完成后C58:C69将所示的分数分布情况。 

  用CountIF函数统计分数段的方法流传很广,但效率并不高,提出这个新方法希望对大家有所帮助。另外,在Excel的帮助里也有一个用FreQuency函数统计分数段的简单范例,大家可以参考。
Excel数据筛选的技巧
20081201 00:12   / 张剑悦  培训杂志    已有3773位网友访问本文
    对于Office一族来说,最常用也是最困扰他们的工作有两个:一个是在浩如烟海的众多数据中,如何快速到和检索出所需的信息;另一个则是如何轻松得到分类汇总的结果和统计报表数据。下面,我们将向大家介绍用Excel对数据信息进行筛选、检索的一些操作技巧和经验。
    日前,在北京召开了第29届奥林匹克运动盛会,来北京参赛旅游的中外宾客络绎不绝,为了更好的了解北京的特小吃和各式美食,所以在网络中非常流行一个吃在北京的文档。该文档是用Excel制作的,文档的标题行中从店名菜系,从地址电话,从招牌菜人均消费可谓一应俱全。为了查询方便,该数据表还设置了自动筛选功能,可通过标题右侧的下拉列表来对餐厅菜系消费价格等按照条件进行筛选查看,如图1所示

    这种通过下拉列表设置条件的筛选在Excel中被称作自动筛选,这种筛选可以将列表中的数据直接当作条件,也可以通过自定义条件的设置进行某个字段查询,由于自动筛选的应用较为简单,在此,不再做赘述和讲解。
    现在,我们要探讨的是自动筛选的兄弟——高级筛选。虽然自动筛选或高级筛选,在Excel中都可以起到根据条件查询数据的作用,是数据分析必不可少的工具和手段,但是高级筛选才是最好的数据查询方式。因为它不仅包含了所有自动筛选的操作,而且还有很多自动筛选望尘莫及的功能,如:多字段复杂条件的关系查询;将查询结果复制到其他表;实现条件的模糊查询;与窗体控件结合等等。
多字段复杂条件的关系查询并将结果复制到其他数据表
   
    Excel自动筛选功能来对数据表进行筛选查询,若对多字段设置了筛选条件,那么结果一定是多字段的条件同时满足,只能做到多字段间条件的查询。在如图2所示的人事表中,若设置了年龄的筛选条件为“>40”,又设置了文化程度为大学本科,那么筛选的结果就一定是年龄大于40岁的大学本科生职工,如图2所示。
 

    下面我们对该人事表设置一个复杂的查询条件,并将查询结果复制到一个新的数据表之中,让大家感受一下Excel高级筛选功能的强大之处。
    查询条件有三个,第1个是查到“2030岁之间的研究生;第2个是查到本科学历的编审;第3个是查到本科学历的副编审。这3个条件只要满足一个就将它筛选出来。很显然,这是一个多字段间复杂的关系查询,这种情况只能使用Execl的高级筛选才能实现,下面就来看看操作过程:
    设置筛选条件区
    高级筛选的前提是在数据表的空白处设置一个带有标题的条件区域,这个条件区有3个注意要点:
    ·条件的标题要与数据表的原有标题完全一致;
    ·多字段间的条件若为关系,则写在一行;
    ·多字段间的条件若为关系,则写在下一行。
    根据这个特点,所以应在数据表旁将条件区域设置完成,如图3所示。
    提示:本例要查的人员有3类,这3类人员是关系,所以将条件写在了3行。每行的字段条件就是关系,第1行要查的是年龄在2030之间的研究生;第2行要查的是学历为大学本科的编审;第3行要查的则是学历为大学本科的副编审。
    设置高级筛选对话框
    高级筛选的条件区创建完成后,就可以进行高级筛选的操作了。由于要将筛选结果复制到新的数据表,所以先要新建一个数据表,并将光标定在该数据表之中;然后选择【数据】菜单【筛选】命令下的【高级筛选】命令,打开高级筛选对话框。
    在对话框中要做3个设置:
    ·“列表区域是待筛选查询的人事表所有数据区域;
    ·“条件区域是刚刚创建的条件区域;
    ·“复制到则是筛选结果所要放入的新建数据表。
    设置完成后的高级筛选对话框,如图4所示。
    查看高级筛选结果
    “高级筛选对话框设置完成后,便可单击【确定】按钮来查看筛选的结果了,如图5所示。
    在这个结果中,一共有3类人员,一类是年龄在2030之间的研究生;第2类是学历为大
学本科的编审;第3类则是学历为大学本科的副编审。至此,通过以上3步,我们对这个人事表进行了多字段复杂条件的关系查询,并将结果复制到了其他数据表之中。
实现条件的模糊查询
    高级筛选不仅可以设置多字段复杂条件的关系查询,而且还可以配合通配符实现筛选条件的模糊查询模式。
    高级筛选中,通配符主要使用的是键盘的【*】符号。“*”表示任意字符,所以若将“*”使用在高级筛选的条件中,便可以实现模糊查询的效果。例如在上例人事表中,若想查询籍贯山东籍的职员,也就是在籍贯字段中起始文字是山东的职员,那么就应将筛选条件区的条件设定成山东*”。
    右侧表数据是按照模糊查询的方式筛选出的查询结果,如图6所示。
 
窗体控件结合制作交互效果
    Excel的高级筛选操作,事先都会创建条件区,利用这个条件区与窗体控件和宏配合,就可以制作出带有交互功能的数据查询效果。
    所谓交互功能的数据查询,是在创建的条件区旁,用窗体控件为数据表添加两个按钮,分别是显示【全部】按钮和【筛选】按钮。当单击【筛选】按钮后,便可以根据条件区的条件筛选出结果,如图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

    “高级筛选Excel中一种非常有效的数据分析方法和数据查询方式。在Office的大家庭中,还有一个与Excel非常有关系的软件就是Access数据库。在Access数据库中,单一表查询用的就是高级筛选功能,单从这点就可以佐证,像Excel这种以表为单位存放数据的软件,数据查询最好的方式其实就是高级筛选Excel的高级筛选在使用上并不复杂,只要把握好条件区的设置,就能查询和检索到符合条件的数据信息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。