使用高级条件筛选

如果要筛选的数据需要复杂的条件(例如类型= "农产品" OR 销售人员 = "赵强"),则可以使用“高级筛选”对话框。

若要打开“高级筛选”对话框,请单击“数据”>“高级

“数据”选项卡上的“排序和筛选”组

高级筛选

示例

概述

一列中有多个条件,所有条件都为真

销售人员 = "赵强" OR 销售人员 = "林恪"

多列中有多个条件,所有条件都为真

类型 = "农产品" AND 销售额 > 1000

多列中有多个条件,所有条件都为真

类型="农产品" OR 销售人员="林恪"

多个条件集,所有条件集中有一列

(销售额 > 6000 AND 销售额 < 6500 ) OR (销售额 < 500)

多个条件集,每个条件集中有多列

(销售人员 = "赵强" AND 销售额 > 3000) OR
(销售人员 = "林恪" AND 销售额 > 1500)

通配符条件

销售人员 = 姓名中的第二个字为“恪”

概述

“高级”命令的工作方式在几个重要方面与“筛选”命令有所不同。

  • 它显示了“高级筛选”对话框,而不是“自动筛选”菜单。

  • 您可以在工作表以及要筛选的单元格区域或表上的单独条件区域中键入高级条件。Microsoft Office Excel 将“高级筛选”对话框中的单独条件区域用作高级条件的源。

示例数据

本文中的所有过程均使用以下示例数据。

这些数据包括列表区域上方要用作条件区域的四个空行 (A1:C4) 和一个列表区域 (A6:C10)。条件区域具有列标签,并且在条件值与列表区域之间至少有一个空行。

若要处理这些数据,请在下表中将其选中,复制,然后粘贴到新 Excel 工作表的单元格 A1 中。

类型

Salesperson

Sales

类型

Salesperson

Sales

饮料

苏术平

¥5122

肉类

李小明

¥450

农产品

郑建杰

¥6328

农产品

李小明

¥6544

比较运算符

可以使用下列运算符比较两个值。当使用这些运算符比较两个值时,结果为逻辑值  TRUE 或 FALSE。

比较运算符

含义

示例

=(等号)

等于

A1=B1

>(大于号)

大于

A1>B1

<(小于号)

小于

A1<B1

>=(大于等于号)

大于或等于

A1>=B1

<=(小于等于号)

小于或等于

A1<=B1

<>(不等号)

不等于

A1<>B1

使用等号键入文本或值

由于在单元格中键入文本或值时等号 (=) 用来表示一个公式,因此 Excel 会计算键入的内容;不过,这可能会产生意外的筛选结果。 为了表示文本或值的相等比较运算符,应在条件区域的相应单元格中键入作为字符串表达式的条件:

=''= 条目 ''

其中条目 是要查找的文本或值。 例如:

在单元格中键入的内容

Excel 计算和显示的内容

="=李小明"

=李小明

="=3000"

=3000

考虑大小写区别

Excel 在筛选文本数据时不区分大小写。但是,你可以使用公式来执行区分大小写的搜索。有关示例,请参阅通配符条件部分。

使用预定义的名称

您可以将某个区域命名为 Criteria,此时“条件区域”框中就会自动出现对该区域的引用。您也可以将要筛选的列表区域命名为 Database,并将要粘贴行的区域命名为 Extract,这样,这些区域就会相应地自动出现在“列表区域”“复制到”框中。

使用公式创建条件

可以将公式的计算结果作为条件使用。记住下列要点:

  • 公式必须计算为 TRUE 或 FALSE。

  • 因为您正在使用公式,请像您平常那样输入公式,而不要以下列方式键入表达式:

    =''= 条目 ''

  • 不要将列标签用作条件标签;请将条件标签保留为空,或者使用列表区域中并非列标签的标签(在以下示例中,是“计算的平均值”和“精确匹配”)。

    如果在公式中使用列标签而不是相对单元格引用或区域名称,Excel 会在包含条件的单元格中显示错误值 #NAME? 或 #VALUE!。您可以忽略此错误,因为它不影响列表区域的筛选。

  • 用作条件的公式必须使用相对引用来引用第一行数据中相应的单元格。

  • 公式中的所有其他引用必须是绝对引用。

一列中有多个条件,所有条件都为真

布尔逻辑:    (销售人员 = "赵强" OR 销售人员 = "林恪")

  1. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  2. 若要查找满足“一列中有多个条件”的行,请直接在条件区域的单独行中依次键入条件。在本示例中,输入以下内容:

    类型

    Salesperson

    Sales

    ="=赵强"

    ="=林恪"

  3. 在列表区域中单击一个单元格。 如果使用本示例,请单击区域 A6:C10 中的任意单元格。

  4. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  5. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

      提示    将筛选所得的行复制到其他位置时,可以指定复制操作中要包含的列。 筛选之前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。 而当筛选时,请在“复制到”框中输入对被复制列标签的引用。 这样,复制的行中将只包含已复制过标签的列。

  6. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用本示例,请输入 $A$1:$C$3。

    若要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  7. 如果使用本示例,列表区域的筛选结果是:

    类型

    Salesperson

    Sales

    肉类

    李小明

    ¥450

    农产品

    郑建杰

    ¥6,328

    农产品

    李小明

    ¥6,544

多列中有多个条件,所有条件都为真

布尔逻辑:    (类型 = "农产品" AND 销售额 > 1000)

  1. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  2. 若要查找满足多列中的多个条件的行,请在条件区域的同一行中键入所有条件。在本示例中,输入以下内容:

    类型

    Salesperson

    Sales

    ="=农产品"

    >1000

  3. 单击列表区域中的某个单元格。在本示例中,单击区域 A6:C10 中的任意一个单元格。

  4. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  5. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

      提示    将筛选所得的行复制到其他位置时,可以指定复制操作中要包含的列。 筛选之前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。 而当筛选时,请在“复制到”框中输入对被复制列标签的引用。 这样,复制的行中将只包含已复制过标签的列。

  6. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用本示例,请输入 $A$1:$C$2。

    若要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  7. 如果使用本示例,列表区域的筛选结果是:

    类型

    Salesperson

    Sales

    produce

    郑建杰

    ¥6,328

    农产品

    李小明

    ¥6,544

多列中有多个条件,所有条件都为真

布尔逻辑:    (类型="农产品" OR 销售人员="林恪")

  1. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  2. 若要查找满足多列中的多个条件(其中任何条件都可以为真)的行,请在条件区域的不同列和行中键入条件。在本示例中,输入以下内容:

    类型

    Salesperson

    Sales

    ="=农产品"

    ="=林恪"

  3. 在列表区域中单击一个单元格。 如果使用本示例,请单击列表区域 A6:C10 中的任意单元格。

  4. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  5. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

    提示: 将筛选所得的行复制到其他位置时,可以指定要复制的列。在筛选前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。而当筛选时,请在“复制到”框中输入对被复制列标签的引用。这样,复制的行中将只包含已复制过标签的列。

  6. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用本示例,请输入 $A$1:$B$3。

    若要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  7. 如果使用本示例,列表区域的筛选结果是:

    类型

    Salesperson

    Sales

    produce

    郑建杰

    ¥6,328

    农产品

    李小明

    ¥6,544

多个条件集,所有条件集中有一列

布尔逻辑:    ( (销售额 > 6000 AND 销售额 < 6500 ) OR (销售额 < 500) )

  1. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  2. 若要查找满足多组条件(其中每组条件都包括单列条件)的行,请在多个列中包括同一个列标题。在本示例中,输入以下内容:

    类型

    Salesperson

    Sales

    销售额

    >6000

    <6500

    <500

  3. 在列表区域中单击一个单元格。 如果使用本示例,请单击列表区域 A6:C10 中的任意单元格。

  4. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  5. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

      提示: 将筛选所得的行复制到其他位置时,可以指定要复制的列。在筛选前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。而当筛选时,请在“复制到”框中输入对被复制列标签的引用。这样,复制的行中将只包含已复制过标签的列。

  6. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用本示例,请输入 $A$1:$D$3。

    若要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  7. 如果使用本示例,列表区域的筛选结果是:

    类型

    Salesperson

    Sales

    肉类

    李小明

    ¥450

    农产品

    郑建杰

    ¥6,328

多个条件集,每个条件集中有多列

布尔逻辑:    ( (销售人员 = "赵强" AND 销售额 >3000) OR (销售人员 = "林恪" AND 销售额 > 1500) )

  1. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  2. 若要查找满足多组条件(其中每组条件都包括多列条件)的行,请在单独的列和行中键入每组条件。在本示例中,输入以下内容:

    类型

    Salesperson

    Sales

    ="=赵强"

    >3000

    ="=郑建杰"

    >1500

  3. 单击列表区域中的某个单元格。在本示例中,单击列表区域 A6:C10 中的任意一个单元格。

  4. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  5. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

      提示    将筛选所得的行复制到其他位置时,可以指定复制操作中要包含的列。 筛选之前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。 而当筛选时,请在“复制到”框中输入对被复制列标签的引用。 这样,复制的行中将只包含已复制过标签的列。

  6. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用此示例,请输入 $A$1:$C$3。要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  7. 如果使用本示例,列表区域的筛选结果将为:

    类型

    Salesperson

    Sales

    produce

    郑建杰

    ¥6,328

    农产品

    李小明

    ¥6,544

通配符条件

布尔逻辑:    销售人员 = 姓名中的第二个字为“恪”

  1. 要查找共享某些字符而非其他字符的文本值,请执行下面一项或多项操作:

    • 键入一个或多个不带等号 (=) 的字符,以查找列中文本值以这些字符开头的行。例如,如果键入文本“”作为条件,则 Excel 将找到“赵强”、“赵威”和“赵新”。

    • 使用通配符。

      用法

      要查找

      ?(问号)

      任何一个字符
      例如,sm?th 可找到“smith”和“smyth”

      *(星号)

      任意的数量字符
      例如,*east 可找到“Northeast”和“Southeast”

      ~(波形符)后跟 ?、* 或 ~

      问号、星号或波形符
      例如,“fy91~?”可找到“fy91?”

  2. 在可用作条件区域的列表区域上方插入至少三个空白行。条件区域必须具有列标签。确保在条件值和列表区域之间至少留出一个空白行。

  3. 在列标签下方的行中,键入要匹配的条件。 如果使用此示例,请输入:

    类型

    Salesperson

    Sales

    ="=Me*"

    ="=?恪*"

  4. 在列表区域中单击一个单元格。 如果使用本示例,请单击列表区域 A6:C10 中的任意单元格。

  5. “数据”选项卡上的“排序和筛选”组中,单击“高级”

    “数据”选项卡上的“排序和筛选”组

  6. 请执行下列操作之一:

    • 若要通过隐藏不符合条件的行来筛选列表区域,请单击“在原有区域显示筛选结果”

    • 若要通过将符合条件的数据行复制到工作表的其他位置来筛选列表区域,请单击“将筛选结果复制到其他位置”,然后在“复制到”框中单击鼠标左键,再单击要在该处粘贴行的区域的左上角。

      提示: 将筛选所得的行复制到其他位置时,可以指定要复制的列。在筛选前,请将所需列的列标签复制到计划粘贴筛选行的区域的首行。而当筛选时,请在“复制到”框中输入对被复制列标签的引用。这样,复制的行中将只包含已复制过标签的列。

  7. 在“条件区域”框中,输入条件区域(包括条件标签)的引用。 如果使用本示例,请输入 $A$1:$B$3。

    若要在选择条件区域期间暂时隐藏“高级筛选”对话框,请单击“压缩对话框按钮图像

  8. 如果使用本示例,列表区域的筛选结果是:

    类型

    Salesperson

    Sales

    饮料

    苏术平

    ¥5,122

    肉类

    李小明

    ¥450

    农产品

    郑建杰

    ¥6,328

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家,在解答社区获得支持,或在 Excel User Voice 上建议新功能或功能改进。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×