Страницы: 1
RSS
Выбор значения из массива по условию фильтра
 
Добрый день !
Пожалуйста, кто подскажет, есть определенный список товаров так скажем, с этого списка нужно отфильтровать к примеру "Груши", только не знаю какую формулу нужно проставить по условию, чтобы в ячейке Е2 появилась значения "Груши". Заранее спасибо ! Во вложение имеется пример  
 
shukhratsharipov04, т.е. вы фильтруете и после этого в E2 появляется наименование?
или же наоборот вы ставите в Е2 и данные автоматически фильтруются?? если все же так то вот вариант

https://www.planetaexcel.ru/techniques/2/197/
Изменено: Mershik - 26.02.2020 10:40:29
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
т.е. вы фильтруете и после этого в E2 появляется наименование?
Так точно, в ячейке Е2 надо написать формулу которая должна показывать по условию фильтра "Груши".
 
shukhratsharipov04,  А что должно быть в ячейке, если будут выбраны не только груши?
По вопросам из тем форума, личку не читаю.
 
shukhratsharipov04,
Код
Sub bb()
Dim x
For Each x In ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
    Cells(2, 5) = x.Value
Next
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
БМВ написал: А что должно быть в ячейке, если будут выбраны не только груши?
Тогда через запятая (",") остальные товары. Например, "Груши,Киви,Яблоки"

А без макроса никак не получится ???? Потому что после каждого проставленного фильтра надо переходить в Microsoft VBA и активировать с помощью F5

Спасибо заранее !
Изменено: shukhratsharipov04 - 26.02.2020 11:34:05
 
shukhratsharipov04,  без макроса не знаю... кнопку можно сделать на листе..и не нужно никуда переходить..

в столбец, не через запятую.. макрос взят https://www.excel-vba.ru/chto-umeet-excel/kak-poluchit-spisok-unikalnyxne-povtoryayushhixsya-znachenij/
Код
Sub Extract_Unique()
    Dim vItem, avArr, li As Long
    ReDim avArr(1 To Rows.Count, 1 To 1)
    With New Collection
        On Error Resume Next
        For Each vItem In Range("A6", Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible)
            'Cells(Rows.Count, 1).End(xlUp) – определяет последнюю заполненную ячейку в столбце А
            .Add vItem, CStr(vItem)
            If Err = 0 Then
                li = li + 1: avArr(li, 1) = vItem
            Else: Err.Clear
            End If
        Next
    End With
    If li Then [E2].Resize(li).Value = avArr
End Sub
Изменено: Mershik - 26.02.2020 11:35:15
Не бойтесь совершенства. Вам его не достичь.
 
Добрый день! Вынесите на панель  быстрого доступа или на ленту  автофильтр. Файл-параметры-настроить ленту, найдите автофильт. Щелкните по слову груши, будет сортировка по значению. Можно по цвету отсортировать.
 
Код
Function GetFilter(ByRef Cell As Range) As String
On Error GoTo err
GetFilter = "-"
With Cell.Parent.AutoFilter.Filters(Cell.Column - Cell.Parent.AutoFilter.Range.Column + 1)
    If .On Then
        Select Case .Operator
        Case 0
            GetFilter = Replace(.Criteria1, "=", "")
        Case xlFilterValues
            GetFilter = Replace(Join(.Criteria1, ","), "=", "")
        Case xlOr
            GetFilter = Replace(.Criteria1 & "," & .Criteria2, "=", "")
        End Select
    Else
        GetFilter = "*"
    End If
End With
err:
End Function


Можно еще покрутить, но стоит ли.
Изменено: БМВ - 26.02.2020 12:13:17
По вопросам из тем форума, личку не читаю.
 
БМВ, это просто супер. Все работает, спасибо большое !
Страницы: 1
Наверх