第5部分 数据筛选
工作簿中数据较多时,为便于查看指定部分数据,可以通过Excel的数据筛选功能将目标数据筛选出来。
筛选的分类:按条件类型来分可以分为按数值筛选、按字符筛选、按颜色筛选三种;按筛选条件个数来分可以分为单条件筛选(自动筛选都是单条件筛选)和双条件筛选(在自定义筛选选项中操作)两种方式;按筛选方式来分可以分为自动筛选和高级筛选,其中高级筛选可以将筛选结果显示在其他区域。
按颜色筛选是Excel 2007新增功能,若文件用Excel 2003或者更低版本保存时颜色筛选将不可用。
本部分主要知识点:
● 单条件数据筛选
● 多条件数据筛选
● 删除筛选
第19章 单条件筛选
单条件筛选一般使用自动筛选方式操作。每列可以按照一个规则进行筛选,可以是数值大小,也可以是字符(包含通配符)比较,还可以以单元格颜色为基准进行筛选。本章通过6个实例演示单条件筛选中的技巧。
● 实例128筛选大于60分之成绩
● 实例129筛选小于等于60分之数据
● 实例130筛选高于平均值之数据
● 实例131筛选前五个最大值
● 实例132筛选不包含指定字符之数据
● 实例133按颜色筛选数据
实例128 筛选大于60分之成绩
【技巧说明】 筛选当前列大于60分之成绩。
【案例介绍】 如图5.1所示,成绩表中成绩分布于50分至98分之间,现需要显示大于60分的成绩,其他数据自动隐藏。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub筛选大于60分之成绩() ActiveCell.CurrentRegion.AutoFilter Field:=2, Criteria1:=">60", Operator:=xlAnd End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中大于60分的数据已筛选出来,结果如图5.2所示。
图5.1 待筛选的原始数据
图5.2 筛选后的成绩表
提示
本实例参见光盘样本:..\第5部分\实例128.xlsm。
【相关知识说明】
AutoFilter:使用“自动筛选”方式筛选一个列表。其参数列表见表5.1。
表5.1 AutoFilter参数列表
实例129 筛选小于等于60分之数据
【技巧说明】 筛选小于等于60分之数据。
【案例实现】 参见以下步骤:
【案例介绍】 以实例128数据为例,筛选出小于等于60分之数据。
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub筛选小于等于60分之成绩() ActiveCell.CurrentRegion.AutoFilter Field:=2, Criteria1:="<=60",Operator:=xlAnd End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中小于等于60分的数据都已筛选出来。
提示
本实例参见光盘样本:..\第5部分\实例129.xlsm。
实例130 筛选高于平均值之数据
【技巧说明】 筛选高于平均值之数据。
【案例介绍】 以实例128数据为例,筛选出高于平均值之数据。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
S Sub筛选高于平均分之成绩() ActiveCell.CurrentRegion.AutoFilter Field:=2, _ Criteria1:=xlFilterAboveAverage, Operator:=xlFilterDynamic End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中高于平均值之数据已筛选出来,结果如图5.3所示。
图5.3 筛选出高于平均值的数据
提示
本实例参见光盘样本:..\第5部分\实例130.xlsm。
【相关知识说明】
(1)xlFilterAboveAverage:表示筛选条件为“高于平均值”。数据筛选的条件列表见表5.2。
表5.2 数据筛选的条件列表
(2)Operator:指定用于关联两个筛选条件的操作符。本实例中使用xlFilterDynamic表示动态筛选。可选项见表5.3。
表5.3 筛选条件间的可选操作符列表
实例131 筛选前五个最大值
【技巧说明】 筛选前五个最大值。
【案例介绍】 以实例128数据为例,筛选出前五个最大值。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub筛选前五个最大值() ActiveCell.CurrentRegion.AutoFilter Field:=2, Criteria1:="5", Operator:=xlTop10Items End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中前五个最大值已筛选出来,结果如图5.4所示。
图5.4 筛选出的前五个最大值
提示
本实例参见光盘样本:..\第5部分\实例131.xlsm。
实例132 筛选不包含指定字符之数据
【技巧说明】 筛选不包含“差”之数据。
【案例介绍】 以实例128数据为例,筛选出评语不为“差”的数据。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub筛选不包含“差”之数据() ActiveCell.CurrentRegion.AutoFilter Field:=3, Criteria1:="<>差" End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中评语不为“差”的数据已筛选出来,结果如图5.5所示。
图5.5 筛选出的评语不为“差”的数据
提示
本实例参见光盘样本:..\第5部分\实例132.xlsm。
【相关知识说明】
(1)AutoFilter:使用“自动筛选”方式筛选一个列表。其参数列表见表5.1。
(2)Criteria1:="<>差":筛选条件为“<>差”。可以使用通配符,例如,评语中包含“极差”和“特别差”等,条件可以改用“<>*差”,表示排除最后一个字符为“差”的数据。
通配符有两个:*和?,前者代表任意字符,后者代表单个字符。
实例133 按颜色筛选数据
【技巧说明】 按颜色筛选数据。
【案例介绍】 如图5.6所示,部分数据已用颜色标示,部分无背景色,现需筛选出有黄色背景色的数据。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub按颜色筛选数据() ActiveCell.CurrentRegion.AutoFilter Field:=3, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中当前区域中任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,当前区域中评语为黄色背景的数据已筛选出来,结果如图5.7所示。
图5.6 以颜色标示评语的成绩表
图5.7 仅筛选出黄色背景的数据
提示
本实例参见光盘样本:..\第5部分\实例133.xlsm。
【相关知识说明】
Criteria1:=RGB(255, 255, 0 ):表示筛选条件为黄色。