Table of contents
本教程解释了Excel的高级过滤器的基本原理,并展示了如何使用它来寻找符合一个或多个复杂条件的记录。
如果你有机会阅读我们之前的教程,你就知道Excel过滤器为不同的数据类型提供了各种选项。 那些内置的文本、数字和日期的过滤选项可以处理很多情况。 很多,但不是全部!当普通的自动过滤器不能满足你的要求时,可以使用高级过滤器工具,配置完全适合你需要的标准。
当涉及到寻找符合两个或更多复杂标准的数据时,Excel的高级过滤器确实很有帮助,如提取两列之间的匹配和差异,过滤与另一个列表中的项目相匹配的行,寻找包括大写和小写字符在内的精确匹配,等等。
高级过滤器在Excel 365 - 2003的所有版本中都可用。 请点击下面的链接了解更多。
Excel高级过滤器与自动过滤器
与基本的自动过滤工具相比,高级过滤器在几个重要方面的工作方式有所不同。
- Excel自动过滤器是一种内置的功能,只需点击一下按钮就可以应用。 只要点击一下 过滤器 按钮,你的Excel过滤器就可以使用了。
高级过滤器不能自动应用,因为它没有预先定义的设置,它需要手动配置列表范围和标准范围。
- AutoFilter允许用最多2个条件来过滤数据,这些条件直接在 自定义自动过滤器 对话框。
使用高级过滤器,你可以在多列中找到符合多个标准的行,高级标准需要在工作表的单独范围内输入。
下面你将看到如何在Excel中使用高级过滤器的详细指导,以及一些有用的文本和数字值的高级过滤器的例子。
如何在Excel中创建一个高级过滤器
使用Excel高级过滤器并不像应用自动过滤器那样简单(许多 "高级 "东西都是这样的:),但它绝对值得一试。 要为你的工作表创建一个高级过滤器,请执行以下步骤。
1.组织源数据
为了获得更好的结果,请按照这2个简单的规则安排你的数据集。
- 添加一个标题行,每一列都有一个独特的标题--重复的标题会给高级过滤器带来混乱。
- 确保你的数据集内没有空白行。
例如,下面是我们的样本表的样子。
2.设置标准范围
在工作表中的一个单独的范围内键入你的条件,也就是标准。 理论上,标准范围可以位于工作表中的任何地方。 在实践中,把它放在顶部,用一个或多个空白行与数据集分开,会更加方便。
高级标准说明。
- 该标准范围必须具有 同列标题 作为你要过滤的表/范围。
- 在同一行列出的标准以AND逻辑工作。 在不同行输入的标准以OR逻辑工作。
例如,要过滤的记录为 北方 区域,其 小计 大于或等于900,设置以下标准范围。
- 地区:北方
- 小计:>=900
关于你可以在标准中使用的比较运算符、通配符和公式的详细信息,请参见高级过滤器标准范围。
3.应用Excel高级过滤器
在到位的标准范围内,以这种方式应用高级过滤器。
- 在你的数据集中选择任何一个单元格。
- 在Excel 2016、Excel 2013、Excel 2010和Excel 2007中,进入 数据 标签> 排序 & 筛选 组,并点击 高级 .
在Excel 2003中,点击 数据 菜单,指向 过滤器 ,然后点击 高级过滤器... .
会出现Excel高级过滤器的对话框,你可以按照下面的说明进行设置。
4.配置高级过滤器参数
在Excel高级过滤器对话窗口中,指定以下参数。
- 行动 选择是就地过滤列表还是将结果复制到其他地方。
选择" 将名单过滤到位" 将隐藏不符合你条件的行。
如果你选择" 将结果复制到另一个地方" 选择你要粘贴过滤行的区域的左上角单元格。 确保目标区域的列中没有数据,因为复制的区域下面的所有单元格将被清除。
- 列表范围 这是要过滤的单元格范围,应该包括列标题。
如果你在选择数据集中的任何单元格后再点击 高级 如果Excel将列表范围弄错了,请单击 "选择 "按钮,Excel将自动选择整个列表范围。 折叠对话 图示 的右侧。 列表范围 框,并使用鼠标选择所需的范围。
- 标准范围 这是你输入标准的单元格的范围。
此外,在高级过滤器对话窗口左下角的复选框可以让你显示 只有唯一的记录 例如,这个选项可以帮助你提取一列中的所有不同(不同)的项目。
在这个例子中,我们要对列表进行就地过滤,所以要这样配置Excel高级过滤器的参数。
最后,点击 "确定",你将得到以下结果。
这很好......但其实用普通的Excel自动过滤器也能达到同样的效果,对吗? 无论如何,请不要急着离开这个页面,因为我们只是触及了表面,所以你已经对Excel高级过滤器的工作原理有了基本的了解。 在文章的更后面,你会发现一些只有高级过滤器才能做到的例子。 为了让你更容易掌握。让我们先了解一下高级过滤器的标准。
Excel高级过滤器的标准范围
正如你刚才所看到的,在Excel中使用高级过滤器并不是什么火箭科学。 但是一旦你学会了高级过滤器标准的细枝末节,你的选择就几乎是无限的了
数字和日期的比较运算符
在高级过滤器标准中,你可以使用以下比较运算符比较不同的数值。
比较运算符 | 意义 | 例子 |
等于 | A1=B1 | |
> | 大于 | A1>B1 |
< | 少于 | A1 |
>= | 大于或等于 | A1>=B1 |
<= | 小于或等于 | A1<=B1 |
不等于 | A1B1 |
数字的比较运算符的用法很明显。 在上面的例子中,我们已经使用了数字标准 >=900 来过滤具有以下特征的记录 小计 大于或等于900。
下面是另一个例子,假设你想显示 北方 地区 月的记录。 七月 与 数量 大于800。 为此,在标准范围内指定以下条件。
- 地区:北方
- 订购日期:>=7/1/2016
- 订购日期: <=7/30/2016
- 金额:>800
而现在,运行Excel高级过滤器工具,指定 列表范围 (A4:D50)和 标准范围 (A2:D2),你将得到以下结果。
注意:无论你的工作表使用何种日期格式,你都应该指定 完整日期 在高级过滤器标准范围内,以Excel能理解的格式,如7/1/2016或1-July-2016。
文本值的高级过滤器
除了数字和日期之外,你还可以使用逻辑运算符来比较文本值。 这些规则在下表中定义。
标准 | 描述 |
="=文本" | 过滤值为的单元格 恰好等于 "文本"。 |
文本 | 筛选出内容为以下内容的单元格 开始 "文本"。 |
文本 | 过滤值为的单元格 不完全等于 "text"(包含 "text "作为其内容一部分的单元格将被包括在过滤器中)。 |
>文本 | 过滤那些数值按字母顺序排列的单元格 之后 "文本"。 |
| 过滤那些数值按字母顺序排列的单元格 之前 "文本"。 |
正如你所看到的,为文本值创建一个高级过滤器有一些特殊性,所以让我们更详细地说明一下。
例1.精确匹配的文本过滤器
要想只显示这些单元格中的 完全相等 到一个特定的文本或字符,包括 等号 在标准中。
例如,如果只过滤 香蕉 Microsoft Excel将显示这些标准为 =香蕉 在一个单元格中,但你可以在公式栏中查看整个表达式。
正如你在上面的截图中看到的,该标准只显示了 香蕉 记录与 小计 大于或等于900,忽略了 绿香蕉 和 金手指香蕉 .
注意:在过滤时 数值 是 完全相等 例如,要过滤小计等于900的记录,你可以使用以下任何一个小计条件:,=900或只是900。
例2.过滤以特定字符开头的文本值
要显示所有内容以指定文本开头的单元格,只需在标准范围内键入该文本,不加等号或双引号。
例如,要过滤所有" 绿色 " 小计大于或等于900的项目,使用以下标准。
- 项目: 绿色
- 小计:>=900
Excel高级过滤器的通配符
要过滤文本记录,可以用 部分匹配 ,你可以在高级过滤器标准中使用以下通配符。
- 问号(?)来匹配任何单一字符。
- 星号(*)用于匹配任何序列的字符。
- 连字符(~)后面跟着*、?或~来过滤包含真正的问号、星号或连字符的单元格。
下表提供了一些带有通配符的标准范围例子。
标准 | 描述 | 例子 |
*文本* | 筛选出的细胞 含有 "文本"。 | *香蕉* 找到所有包含 "香蕉 "一词的单元格,例如 "绿香蕉"。 |
? "文本 | 筛选出内容为以下内容的单元格 开始 任何两个字符。 随后是 "文本"。 | ? "香蕉 查找含有 "香蕉 "一词的单元格,前面有任何2个字符,如 "1#香蕉 "或"//香蕉"。 |
文本*文本 | 筛选出的细胞 开始 "文本 "并包含一个 第二次发生 的 "文本 "在单元格的任何地方。 | 香蕉*香蕉 找到以 "香蕉 "开头,并在文本中包含另一个 "香蕉 "出现的单元格,例如:" 香蕉绿对香蕉黄" . |
="=text*text" | 筛选出的细胞 开始 与和 结束 与 "文本"。 | ="= 香蕉 香蕉 "找到以 "香蕉 "开头和结尾的单元格,例如:" 香蕉,美味的香蕉" . |
="=text1?text2" | 筛选出的细胞 开始 与 "text1"。 结束 与 "text2",并且正好包含 一个字符 在这之间。 | ="= 香蕉 ? 橙色 "找到以 "香蕉 "开头,以 "橘子 "结尾,并在两者之间包含任何单一字符的单元格,例如" 香蕉/橘子" 或" 香蕉*橘子"。 |
文本~** | 筛选出的细胞 开始 "文本"。 随后是 *, 随后是 任何其他的角色(s)。 | 香蕉~** 查找以 "香蕉 "开头的单元格,后面是星号,后面是任何其他文本,如 "香蕉*绿色 "或 "香蕉*黄色"。 |
="=?????" | 过滤含有恰好5个字符的文本值的单元格。 | ="=?????" 找到任何含有正好5个字符的文本的单元格,如 "苹果 "或 "柠檬"。 |
这里是最简单的通配符标准(*banana*),它可以找到所有包含 "香蕉 "一词的单元格。
高级过滤器标准中的公式
要创建一个具有更复杂条件的高级过滤器,你可以在条件范围内使用一个或多个Excel函数。 要使基于公式的条件正确工作,请遵循以下规则。
- 该公式必须评估为TRUE或FALSE。
- 标准范围应包括至少2个单元格。 公式单元格 和 标题单元 .
- ǞǞǞ 标题单元 在基于公式的标准中,应该是 空白 ,或有一个与任何列表范围标题不同的标题。
- 对于要评估的公式为 每行数据 在列表范围内,使用相对引用(没有$,如A1)来指代第一行数据中的单元格。
- 对于只对某一公式进行评估的 特定细胞 或 细胞的范围 ,使用绝对引用(带$,如$A$1)来指代该单元格或区域。
- 当参考了 列表范围 公式中,总是使用绝对的单元格引用。
例如,要过滤以下的行 八月 销售额(C列)大于 七月 销售额(D列),使用标准=D5>C5,其中5是第一行的数据。
注意:如果你的标准只包括 一个公式 如本例中,确保在标准范围内至少包括2个单元格(公式单元格和标题单元格)。
关于基于公式的多个标准的更复杂的例子,请看如何在Excel中使用高级过滤器--标准范围例子。
使用高级过滤器的AND与OR逻辑
正如本教程开头所提到的,Excel高级过滤器可以使用AND和OR逻辑,这取决于你如何设置。 标准范围 :
- 关于的标准 同行 是用一个 和 经营者。
- 关于的标准 不同的行 是用一个 或 经营者。
为了使事情更容易理解,请考虑以下例子。
带AND逻辑的Excel高级过滤器
要显示有以下内容的记录 小计 >=900 AND 平均值 >=350,在同一行定义两个标准。
Excel高级过滤器与OR逻辑
要显示有以下内容的记录 小计 >=900 或 平均值 >=350,将每个条件放在一个单独的行上。
带有AND以及OR逻辑的Excel高级过滤器
要显示的记录为 北方 区域与 小计 大于或等于900 OR 平均值 大于或等于350,以这种方式设置标准范围。
换句话说,这个例子中的标准范围转化为以下条件。
( 地区 =北方 和 小计 >=900) 或 ( 地区 =北方 和 平均值 >=350)
注意:本例中的源表只包含四个地区:北、南、东和西,因此我们可以安全地使用 北方 如果有任何其他地区含有 "北 "字,如西北或东北,那么我们将使用精确匹配标准。 ="=北方"
.
如何只提取特定的列
当配置高级过滤器,使其将结果复制到另一个位置时,你可以指定 提取哪些列 .
- 在应用过滤器之前,输入或复制你想提取的列的标题到目标范围的第一行。
例如,要复制数据摘要,如 地区 , 项目 和 小计 基于指定的标准范围,在H1:J1单元格中键入3个列的标签(请看下面的截图)。
- 应用Excel高级过滤器,并选择 复制到另一个位置 选项下的 行动 .
- 在 复制到 框中,输入对目标范围(H1:J1)中的列标签的引用,然后点击确定。
结果,Excel根据标准范围中列出的条件过滤了这些行( 北方 区域项目有 小计 >=900),并将这3列复制到指定位置。
如何将过滤后的行复制到另一个工作表中
如果你在包含原始数据的工作表中打开高级过滤工具,选择" 复制到另一个位置 "选项,并选择 复制到 在另一个工作表中的范围,你会得到以下错误信息:" 你只能将过滤后的数据复制到活动工作表中 ".
然而,有一种方法可以将过滤后的行复制到另一个工作表中,而且你已经得到了线索--只要从 "高级过滤 "中启动 目的地表 这样,它就会成为你的活动表。
假设,你的原始表在Sheet1中,你想把过滤后的数据复制到Sheet2中。 这里有一个超级简单的方法来完成它。
- 首先,在Sheet1上设置标准范围。
- 转到工作表2,选择工作表中未使用的部分的任何空单元格。
- 运行Excel的高级过滤器( 数据 标签> 高级 ).
- 在 高级过滤器 对话窗口,选择以下选项。
- 隶属 行动 ,选择 复制到另一个位置 .
- 点击在 列表范围 框,切换到Sheet1,并选择你要过滤的表。
- 点击在 标准范围 框,切换到 Sheet1,并选择标准范围。
- 点击在 复制到 如果您只想复制某些列,请事先在Sheet2上键入所需的列标题,现在选择这些标题)。
- 单击 "确定"。
在这个例子中,我们要提取4个列到Sheet2中,所以我们完全按照Sheet1中的内容键入相应的列标题,并选择包含标题的范围(A1:D1),在 复制到 箱子。
基本上,这就是在Excel中使用高级过滤器的方法。 在下一个教程中,我们将仔细研究带有公式的更复杂的标准范围的例子,所以请继续关注!