Excel高级过滤器--如何创建和使用

  • Share This
Michael Brown

本教程解释了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 td="">
    >= 大于或等于 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 "作为其内容一部分的单元格将被包括在过滤器中)。
    >文本 过滤那些数值按字母顺序排列的单元格 之后 "文本"。
    code=""> 过滤那些数值按字母顺序排列的单元格 之前 "文本"。

    正如你所看到的,为文本值创建一个高级过滤器有一些特殊性,所以让我们更详细地说明一下。

    例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)

    注意:本例中的源表只包含四个地区:北、南、东和西,因此我们可以安全地使用 北方 如果有任何其他地区含有 "北 "字,如西北或东北,那么我们将使用精确匹配标准。 ="=北方" .

    如何只提取特定的列

    当配置高级过滤器,使其将结果复制到另一个位置时,你可以指定 提取哪些列 .

    1. 在应用过滤器之前,输入或复制你想提取的列的标题到目标范围的第一行。

      例如,要复制数据摘要,如 地区 , 项目 小计 基于指定的标准范围,在H1:J1单元格中键入3个列的标签(请看下面的截图)。

    2. 应用Excel高级过滤器,并选择 复制到另一个位置 选项下的 行动 .
    3. 复制到 框中,输入对目标范围(H1:J1)中的列标签的引用,然后点击确定。

    结果,Excel根据标准范围中列出的条件过滤了这些行( 北方 区域项目有 小计 >=900),并将这3列复制到指定位置。

    如何将过滤后的行复制到另一个工作表中

    如果你在包含原始数据的工作表中打开高级过滤工具,选择" 复制到另一个位置 "选项,并选择 复制到 在另一个工作表中的范围,你会得到以下错误信息:" 你只能将过滤后的数据复制到活动工作表中 ".

    然而,有一种方法可以将过滤后的行复制到另一个工作表中,而且你已经得到了线索--只要从 "高级过滤 "中启动 目的地表 这样,它就会成为你的活动表。

    假设,你的原始表在Sheet1中,你想把过滤后的数据复制到Sheet2中。 这里有一个超级简单的方法来完成它。

    1. 首先,在Sheet1上设置标准范围。
    2. 转到工作表2,选择工作表中未使用的部分的任何空单元格。
    3. 运行Excel的高级过滤器( 数据 标签> 高级 ).
    4. 高级过滤器 对话窗口,选择以下选项。
      • 隶属 行动 ,选择 复制到另一个位置 .
      • 点击在 列表范围 框,切换到Sheet1,并选择你要过滤的表。
      • 点击在 标准范围 框,切换到 Sheet1,并选择标准范围。
      • 点击在 复制到 如果您只想复制某些列,请事先在Sheet2上键入所需的列标题,现在选择这些标题)。
      • 单击 "确定"。

    在这个例子中,我们要提取4个列到Sheet2中,所以我们完全按照Sheet1中的内容键入相应的列标题,并选择包含标题的范围(A1:D1),在 复制到 箱子。

    基本上,这就是在Excel中使用高级过滤器的方法。 在下一个教程中,我们将仔细研究带有公式的更复杂的标准范围的例子,所以请继续关注!

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.