如何在Excel中使用“高级”筛选器排除已过滤的数据而不是包括它

时间:2018-10-30 13:58:45

标签: excel filtering

我有一个大型数据集,我需要从中筛选出我设置的另一个大型数据集中包含关键字的所有行。我知道如何在excel中使用高级过滤器功能,但它只会删除没有关键字的数据,而不是带有关键字的数据。

我只有关于行中不能包含的关键字的信息,因为与此功能相对应的行(它可以包含的关键字)远远不够。

请帮助!

1 个答案:

答案 0 :(得分:1)

比方说,我有9种颜色的列表,我想过滤掉所有不是“粉红色”或“黄色”的值。为了筛选出确切的列表,我必须根据自己的要求创建一个数组,然后对该数组进行筛选。因此,在此示例中,我们遍历所有值,如果它们不是粉红色或黄色,则将它们添加到数组中,然后对其进行过滤:

Sub Test()

Dim arr As Variant
Dim i As Long, j As Long

j = 0

For i = 2 To 10
    If Range("A" & i).Value <> "Pink" And Range("A" & i).Value <> "Yellow" Then
        If j = 0 Then
            ReDim arr(0 To 0)
            arr(j) = Range("A" & i).Value
            j = j + 1
        Else
            j = j + 1
            ReDim Preserve arr(0 To j)
            arr(j) = Range("A" & i).Value
        End If
    End If
Next i

Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues

End Sub

示例:

img1