Мне действительно нужна помощь ваших парней, потому что я хочу отфильтровать слова, которые заканчиваются, например, .com , .be , .nl , .net или .org . Я знаю, что есть вариант для этого, но с помощью этого параметра я могу фильтровать только один. Увидеть:

Но я хочу отфильтровать больше, чем один. Проще говоря, я хочу отфильтровать несколько слов, заканчивающихся на .com , .be , .nl , .net или .org .

Я хочу отфильтровать это:

Спасибо, парни

2 ответа2

0

Вы должны будете выделить доменные имена в их собственный столбец. Вы можете сделать это с помощью следующей формулы:=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

0

Использование этого макроса позволит вам преодолеть ограничение автофильтра:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .