高级过滤器,不包括Excel表中的三个条件

时间:2015-01-06 23:15:08

标签: excel filter excel-formula

我试图使用高级过滤器过滤表格,其中所有项目都可以显示为包含商品编号的商品(包含(或者首先,它并不重要)" PDE"," Q"或" M"。常规Excel过滤器仅允许两个过滤条件,这就是我需要高级过滤器的原因。 (为了澄清,表中有许多列,而文章编号是其中一列。)

但是,到目前为止,我还没有找到过滤不包含某些内容的项目的方法,尽管我已经做了大量的研究,包括Microsoft教程here。有任何想法吗?如果您需要更多信息,请与我们联系。

3 个答案:

答案 0 :(得分:0)

我的第一个直觉是它不是直接可能的。我会在辅助列中编写类似=if(<complex condition>,"Y","N")的公式,然后对该列进行过滤。

答案 1 :(得分:0)

您可以使用 AutoFilter 执行此操作您必须构建列中所有元素的数组,不包括重复项并排除 PDE M

以下是 D 列的示例,其中标题行为#2

Sub FilterExcludeThree()
    Dim N As Long, i As Long, c As Collection
    Set c = New Collection
    N = Cells(Rows.Count, "D").End(xlUp).Row
    On Error Resume Next
    For i = 3 To N
        v = Cells(i, "D").Value
        If v = "PDE" Or v = "M" Or v = "Q" Or v = "" Then
        Else
            c.Add v, CStr(v)
        End If
    Next
    On Error GoTo 0

    ReDim ary(0 To c.Count - 1)

    For i = 1 To c.Count
        ary(i - 1) = c.Item(i)
    Next i

    ActiveSheet.Range("D2:D" & N).AutoFilter Field:=1, Criteria1:=ary, _
        Operator:=xlFilterValues
End Sub

答案 2 :(得分:0)

我认为问题可能在于只有一个列(尽管我在你引用的文档中没有看到这一点)。如果您的列表在ColumnA中,例如A7:A17,请尝试在A2中插入一个新的ColumnA(A1空白):

=AND(ISERROR(SEARCH("M",B7)),ISERROR(SEARCH("Q",B7)),ISERROR(SEARCH("PDE",B7))) 

然后是高级过滤器,列表范围:$A$6:$B$17,标准范围:$A$1:$A$2