数据筛选是常用的Excel数据管理功能之一,是实现在数据清单中提炼出满足筛选条件的数据。我们不但可以实现简单的自动筛选,还可以定义条件来实现灵活的高级筛选。
若要使用复杂的条件来筛选单元格区域,请使用“数据”选项卡上“排序和筛选”组中的“高级”命令。
“高级”命令的工作方式在几个重要的方面与“筛选”命令有所不同。
1) 它显示了“高级筛选”对话框,如所示。而不是“自动筛选”菜单。
图1
2) 可以在工作表单独的区域中键入高级条件。Excel将“高级筛选”对话框中的单独条件区域用作高级条件的源。
“高级筛选”条件设置的关系为:
在“高级筛选”的条件设置中,条件列与条件列之间的关系是“与”的关系,表示要同时满足,而条件行与条件行之间的关系是“或”的关系,表示满足其一即可。
示例:以图2为例。在该例中,A~I为数据区,K~M用于设置条件。
图2
-
使用单列中的多个条件执行筛选(其中任何条件都可以为真)
假定要筛选的条件为:姓名= "刘树忠" OR姓名= "韩旭"。
具体步骤为:
1) 在条件区域的单独行中依次键入条件。在本例的K2输入:="=刘树忠"(或直接输入:刘树忠);K3输入:=" =韩旭"(或直接输入:韩旭)。
%小提示:
a. 使用等号键入文本或值
为了表示文本或值的相等比较运算符,应在条件区域的相应单元格中键入作为字符串表达式的条件:
=''=条目''
其中条目是要查找的文本或值。如果比较运算符只是“等于”的关系,也可不用等号表达式,直接在条件区域中输入文本即可。
b. 输入文本时,一定要注意空格的对应,如本例中的"韩旭"中间有3个空格,有时候我们很难判断源数据中文本包含了几个空格,最好的办法就是采用复制/粘贴的方法将源数据复制到条件定义区域。
2) 单击源数据区中的某个单元格。在本例中,应选定A~I列中的任意一个单元格。
3) 在“数据”功能区“排序和筛选”功能组中,点选“高级”命令,打开图1所示的对话框。
4) 检查“列表区域”框中的区域是否为您所需要筛选的数据区域。Excel默认会将光标所在的区域选中为列表区域。在此处可以更改筛选数据源。
5) 在图1的“条件区域”框中,指定条件区域(包括条件标签,如图2中的K1~M1)的引用。在本例中,应输入$K$1:$M$3。
6) 执行下列操作之一:
-
若要通过隐藏不符合条件的行来筛选区域,单击“在原有区域显示筛选结果”。
-
若要通过将符合条件的数据行复制到工作表的其他位置来筛选区域,单击“将筛选结果复制到其他位置”,然后在“复制到”编辑框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。
本例中,最后的数据筛选结果如图3所示。
图3
%小提示:
a. 在图3中会发现条件区域中定义的条件不见了,这是因为条件区域所在的行里的数据记录不符合筛选条件,被隐藏了。
b. 可以将筛选所得的行复制到同一工作表中的其他位置时,而且可以指定要复制的列。只需要在筛选前,将所需列的列标签复制到计划粘贴筛选行的区域的首行。而当筛选时,在“复制到”框中输入对被复制列标签的引用。这样,复制的行中将只包含已复制过标签的列。
2. 使用多列中的多个条件执行筛选(其中所有条件都必须为真)
假定要筛选的条件为:文化总成绩>240 AND单位分类= "其它"。
具体步骤为:
1) 在条件区域的同一行中键入所有条件。在本例中,L2应输入:>240;M2输入:其它。
2) 打开高级筛选对话框,设置“列表区域”和“条件区域”,条件区域应该为K1:M2。
本例中,最后的数据筛选结果如图4所示。
图4
3. 使用多列中的多个条件执行筛选(其中任何条件都可以为真)
假定要筛选的条件为:文化总成绩>240 OR单位分类= "其它"。
具体步骤为:
1) 在条件区域的不同列和行中键入条件。在本例中,K2输入:>240;M3输入:其它(或=" =其它")。
2) 打开高级筛选对话框,设置“列表区域”和“条件区域”,条件区域应该为K1:M3。
本例中,最后的数据筛选结果如图5所示。
图5
4. 使用多组条件执行筛选(其中每组条件都包括多列条件)
假定要筛选的条件为:(文化总成绩>240AND单位分类= "其它") OR (文化总成绩<200 AND单位分类= "中金")。
具体步骤为:
1) 在单独的列和行中键入每组条件。在本例中,要输入的条件如图6所示。
图6
2) 打开高级筛选对话框,设置“列表区域”和“条件区域”。
本例中,最后的数据筛选结果如图7所示。
图7
5. 使用多组条件执行筛选(其中每组条件都包括单列条件)
假定要筛选的条件为:(文化总成绩> 230AND文化总成绩< 240) OR (文化总成绩< 190)。
具体步骤为:
1) 若要查找满足多组条件(其中每组条件都包括单列条件)的行,需要在多个列中包括同一个列标题。在本例中,条件区域应定义为图8所示。
图8
2) 打开高级筛选对话框,设置“列表区域”和“条件区域”。
本例中,最后的数据筛选结果如图9所示。
图9
6. 使用公式筛选数据区域中大于所有值的平均值的数值
可以将公式的计算结果作为条件使用。假定要筛选的条件为:文化总成绩>文化总成绩平均值的。
只需要将条件区域定义为图10所示的条件,其中M2的公式为:=E2>AVERAGE($E$2:$E$91),M2中显示的结果值将为FALSE。
图10
最终的数据筛选结果如图11所示。
图11
使用公式定义筛选条件需要注意以下几点:
-
公式条件计算的结果只能是TRUE或FALSE。
-
要正确输入公式条件,输入方式与通常输入单元格公式一样。
-
不要将列标签用作定义公式条件的标签;要么保留为空,要么使用自定义标签。
如:图10中使用的是自定义名字“成绩平均值”。
-
用于创建条件的公式必须使用相对引用来引用第一行中的对应单元格。如本例中的E2。
-
公式中的所有其他引用必须是绝对引用,如本例的:$E$2:$E$91。
7. 使用通配符定义条件
可以使用通配符条件筛选共享某些特定字符而非其他字符的文本值。如在示例1中输入的条件为:="=刘??",则表示定义条件为姓名为3个字的刘姓人员。
表1通配符的使用
使用 |
用于查找 |
?(问号) |
任意单个字符 例:“刘??”可找到“刘树忠”和“刘忠海”等 |
*(星号) |
任意数量的字符 例如,“刘*”可找到“刘树忠”和“刘恒”等 |
~(波形符)后跟?、*或~ |
问号、星号或波形符 例如,假如某个人就叫“刘*”,此时必须用“刘~*”来做条件,否则就会查找出所有姓刘的人,而不是叫“刘*”的这一个人。 |
%小技巧:
可以借助域名的定义来更为直观地定义“高级筛选”的条件,如将条件区域命名为“Criteria”,将要筛选的数据区域命名为“Database”,将要粘贴行的区域命名为“Extract”。