按两个以上的值过滤一列(“结尾为”)

按两个以上的值过滤一列(“结尾为”)

我真的需要你们的帮助,因为我想过滤以.com.be.nl.net或结尾的单词.org。我知道有一个选项可以做到这一点,但使用该选项我只能过滤一个。请参阅:

在此处输入图片描述

但我想过滤多个。简单地说,我想过滤多个以.com.be.nl.net或结尾的单词.org

我想过滤这个:

在此处输入图片描述

多谢你们

答案1

您必须将域名单独分到各自的列中。您可以使用以下公式执行此操作:( =RIGHT(A1,LEN(A1)-FIND("@",SUBSTITUTE(A1,".","@",(LEN(A1)-LEN(SUBSTITUTE(A1,".","")))/LEN("."))))假设您的原始字符串值在 A1 中)

进一步阅读我下面链接的主题,揭示了另一种更简单的方法来实现相同类型的分离=TRIM(RIGHT(SUBSTITUTE(A1,".",REPT(" ",LEN(A1))),LEN(A1)))

然后,您可以将其复制到所有行,并使用 Excel 中的过滤工具选择所需的特定域。

我还建议您使用列标题,这样您就不会使用数据行作为列标题进行过滤。

为了提供您的答案,我使用了有关该主题的答案中的一些信息: https://stackoverflow.com/questions/18617349/excel-last-character-string-match-in-a-string

答案2

使用此宏可以让你克服自动筛选

Sub FilterByHand()
    Dim N As Long, t As String
    Dim r As Range, i As Long
    Const domainList As String = "|com|net|org|be|nl|"
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 2 To N
        Set r = Cells(i, "A")
        t = "|" & Mid(r.Value, InStrRev(r.Value, ".") + 1) & "|"
        If InStr(1, domainList, t) = 0 Then r.EntireRow.Hidden = True
    Next i
End Sub

相关内容