数据在Excel表中的筛选,也就是根据定义的条件将需要的数据记录从数据清单中选择出来,同时Excel表只显示你选择的这一部分数据,而不是全部,主要是用来对数据进行整理和分析或数据的提取的。数据筛选相当于数据库中的“查询”(Select)命令(通过子命令Where定义条件)。(Excel中定义的数据筛选源区域也就是数据清单,是有数据库中的表的概念的,表头相当于字段,表头下的每一行就是记录。)
Excel中的数据筛选都需要定义筛选的条件,根据构造条件的方式不同分为自动筛选和高级筛选。自动筛选是通过对话框来构造单一条件,操作比较直观简单便捷。高级筛选是通过数据筛选源数据以外的单元格区域自定义条件,可以定义多个,比较适应多条件、复杂条件的情形。
Excel中的筛选,可以通过工作表选项卡区中的命令直接完成,也可以通过VBA代码完成。(其实也就是将整个筛选操作的过程录制成宏,再适当修改代码。)
1 多条件自动筛选
Sub Filter_MoreCriteria()
Dim Crit As Variant
Application.ScreenUpdating = False
With Worksheets(1)
If .FilterMode = True Then .ShowAllData
.Range("A1").AutoFilter Field:=1, Criteria1:="1243301", Operator:=xlOr, Criteria2:="1288178"
.Range("B1").AutoFilter Field:=2, Criteria1:="ORA"
End With
Application.ScreenUpdating = True
End Sub
2 高级筛选提取唯一值
Sub 高级筛选提取唯一值()
Dim X As Integer
Columns(13).Clear
X = Range("A" & Cells.Rows.Count).End(xlUp).Row
Range("A1:A" & X).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("M1"), Unique:=True
End Sub
3 代码要点
使用AutoFilter或AdvancedFilter方法完成自动筛选或高级筛选:
工作簿.单元格对象.AutoFilter ...
工作簿.单元格对象.AdvancedFilter ...
以上代码完成的如下命令的功能:
数据→筛选…
数据→高级筛选...
(如果不熟悉相关VBA代码,可以通过“录制宏”的方式先录得代码,再适当改动即可。
4 筛选的工作表选项卡区图标命令操作
4.1 自定义筛选
对某列定义筛选条件实现筛选;
4.2 高级筛选
4.2.1 建立条件区域(与需要筛选的数据清单分开);
4.2.2 可以将筛选结果复制到其它区域;
4.2.3 指定需要筛选的列表区域;
4.2.4 指定条件区域;