Страницы: 1
RSS
Поиск значений и вывод их в отдельный список
 
Уважаемые форумчане!

Подскажите, как реализовать построчный вывод значений в столбце, который содержит только часть фильтра?

К примеру, имеется длинный столбец, в котором значения не повторяются. В поле "фильтр" вводится некоторая часть искомого значения. Нужно вывести все значения, которые содержат значение ячейки "фильтр" в отдельный столбец "отфильтрованная".

Посмотрите пример, удалось пока что через массив выводить точное совпадение. Возможно ли провернуть без макросов?
Изменено: tanfen - 25.01.2020 18:46:42
 
Используйте Find и FindNext  с параметром xlPart
 
Слегка не понял :( . Это через VBA? Найдется ли у Вас пример?
 
Вы можете свой файл выложить в формате .xls, а то конвертер не открывает ваш пример
 
Да, конечно.
 
Для вашей таблицы в столбцах J:L
Макрос в модуль листа, результат в столбце M
Срабатывает при изменении содержимого в ячейке "L2"
Код
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("L2")) Is Nothing Then
  Application.EnableEvents = False
Dim iLastRow As Long
Dim FoundCell As Range
Dim FAdr As String
    Columns("M").ClearContents
    Set FoundCell = Columns(10).Find(Target, , xlValues, xlPart)
     If Not FoundCell Is Nothing Then
      FAdr = FoundCell.Address
      Do
        iLastRow = Cells(Rows.Count, "M").End(xlUp).Row + 1
        Cells(iLastRow, "M") = Cells(FoundCell.Row, "J")
       Set FoundCell = Columns(10).FindNext(FoundCell)
      Loop While FoundCell.Address <> FAdr
     End If
 End If
  Application.EnableEvents = True
End Sub
 
Kuzmich, от души спасибо! ;)  Все заработало! Мне всегда хватало формул, а VBA обходил стороной :)  
 
В Офис 365 с новой функцией ФИЛЬТР и ПОИСК все решается за 5 секунд... и не надо макросов и VBA.
 
Цитата
voxik-24 написал:
ФИЛЬТР и ПОИСК
Вы уверены на счёт использования функции ПОИСК() с её базовым синтаксисом?
Изменено: Aleksey1107 - 27.01.2020 19:07:05
 
Цитата
tanfen написал:
Возможно ли провернуть без макросов?
- если устраивает видеть в том же столбце - то это стандартный функционал фильтра. В соседний столбец можно вручную скопировать отфильтрованное.
 
Цитата
Aleksey1107 написал:
уверены на счёт использования функции ПОИСК() с её базовым синтаксисом?
Код
=ФИЛЬТР($B$12:$B$32;НЕ(ЕОШ(ПОИСК($E$6;$B$12:$B$32)));"")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, я сделал уточнение, возможно не совсем корректное,
Т.е.имелось в виду, что одной функцией ПОИСК() задать условие не получиться  ;)
Цитата
Aleksey1107 написал:
с её базовым синтаксисом?
У Вас конечно покороче, чем мой вариант:
Код
=ФИЛЬТР(J5:J14;ЕСЛИОШИБКА(СТРОКА(J5:J14)=ЕСЛИ(ПОИСК(Ввод;J5:J14);СТРОКА(J5:J14));0))
Изменено: Aleksey1107 - 27.01.2020 20:27:57
Страницы: 1
Наверх