【问题标题】:Advanced filter excluding three criteria from Excel table从 Excel 表中排除三个条件的高级过滤器
【发布时间】:2015-01-08 03:50:25
【问题描述】:

我正在尝试使用高级过滤器过滤表,其中所有项目都可以显示,但文章编号包含(或开头,无关紧要)“PDE”、“Q”的项目除外,或“M”。常规的 Excel 过滤器只允许两个过滤条件,这就是我需要高级过滤器的原因。 (为了澄清,表格中有很多列,文章编号就是其中之一。)

但是,尽管我已经进行了大量研究,包括 Microsoft 教程 here,但到目前为止,我一直无法找到过滤不包含某些内容的项目的方法。有任何想法吗?如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: excel filter excel-formula


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用 AutoFilter 执行此操作 您必须构建列中所有元素的 Array,不包括重复项和不包括 PDE QM

      这是列 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
      

      【讨论】:

        【解决方案3】:

        我认为问题可能在于只有一列(尽管我在您引用的文档中没有看到任何提及)。如果您的列表在 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多