Страницы: 1
RSS
Как в Автофильтре отделить текстовое вхождение в строке "#1" от "#10", если после "#1" может быть как конец строки, так и любой символ
 
Здравствуйте. Прошу помощи в следующем вопросе. Есть столбец с текстовыми значениями. В нем есть строки с вхождениями текста "#1" и "#10". Надо применять Автофильтр, чтоб отделить записи "#1" от "#10", причем после "#1" может быть как конец строки, так и какой-то символ (пробел, знак препинания, буква). Как организовать такой автофильтр?
Примеры строк:
"Яблоко #10"
"Груша #10 спелая"
"Слива #1"
"Абрикос #1 кислый"
"Банан #1. Желтый"
"#1"
и т.д.
 
Автофильтр с текстом в сообщении не работает
 
Цитата
vikttur написал:
Автофильтр с текстом в сообщении не работает
Я не понял, что вы имели в виду
 
Примера нет
 
Цитата
vikttur написал:
Примера нет
Яблоко #10
Груша #10 спелая
Слива #1
Абрикос #1 кислый
Банан #1. Желтый
#1
 
он имел ввиду - от вас нужен пример в файле Excel, а не текстом в теме
 
можно расширенным фильтром и вот такой формулой в качестве китерия
=ISERROR(FIND(MID(A2&" ";FIND("#1";A2)+2;1);"0123456789"))*FIND("#1";A2)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
можно расширенным фильтром и вот такой формулой в качестве китерия
в том то и дело, что нужен именно Автофильтр.
А вы бы могли написать формулу для русского экселя, так как в моей версии английские формулы не понимаются экселем
 
Barmaldon, а Вы могли бы обратить внимание на правила форума и неоднократные замечания?! Чем вызвано непонятное упорство? ПРИМЕР ГДЕ?
Неважно, в какой локализации Вам напишут формулу - откроете книгу у себя и увидите формулу в Вашей локализации.
Нет же, сутки воду в ступе толчем...
 
Цитата
Barmaldon написал:
Надо применять Автофильтр
Т.к. вменяемого примера нет, то:
Нажимаем на фильтр - выбираем в меню Текстовый фильтр и задаем два условия:
1. Содержит "#1" (только без кавычек)
условие И:
2. Не Содержит "#10" (только без кавычек)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Извините, что нет примера, но я полагал, что выложенные в теле поста строки могут служить таковым. Ваше решение вполне подходит, большое спасибо.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Не Содержит "#10"
а также не содержить #11,#12,#13 ..... и все что начинается на #1 c цифрами после :-) . К несчастью для Word это не проблема, но не для Excel :-(

Barmaldon, Полностью согласен с  
Цитата
vikttur написал:
Неважно, в какой локализации Вам напишут формулу - откроете книгу у себя и увидите формулу в Вашей локализации.
нет примера - нет перевода. Лень делать пример - значит не лень искать перевод формул, заменить там не сложно, но думаю применить вы не сможете. Нужен пример.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
а также не содержить #11,#12,#13
ну про эти значения не было и речи изначально
Цитата
Barmaldon написал:
есть строки с вхождениями текста "#1" и "#10".

а все нюансы отсекаем по описанному тобой принципу
Цитата
БМВ написал:
нет примера - нет перевода
:D  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Barmaldon написал:
я полагал, что выложенные в теле поста строки могут служить таковым
для вас, но не для нас. Нам намного проще скачать и открывать ваш файл и в нём уже попытаться найти решение (формулы, макрос, меню, PowerQuery и т.д), чем создавать свой файл, вписывать ваши строки из темы, а потом только пытаться что-то делать с этими данными.
Изменено: New - 12.01.2021 15:17:54
 
Вот файл примера (вложен).
Я немного усложнил задачу: надо Автофильтром (расширенный НЕ подходит) выбрать все значения с #1 (не с #10, не с #11, не с #12, а именно с #1).
 
Да легко.
Выбирайте в списке автофильтра только те значения, которые подходят под ваши условия.
 
это пример, в реальном случае таких записей десятки тысяч
 
Barmaldon, макрос
Код
Sub mrshkei()
Dim i As Long, lr As Long, arr As Variant, arr2, arr3
ReDim arr2(1 To 1)
arr = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
lr = Cells(Rows.Count, 1).End(xlUp).Row
arr3 = Range("A2:A" & lr)
xxx = "#1"
For i = LBound(arr3) To UBound(arr3)
    n = InStr(arr3(i, 1), xxx)
    If n > 0 Then
        For k = LBound(arr) To UBound(arr)
            If Mid(arr3(i, 1), n + Len(xxx), 1) = arr(k) Then
                Exit For
            Else
                x = x + 1
            End If
        Next k
        If x = 10 Then
            arr2(UBound(arr2)) = arr3(i, 1)
            ReDim Preserve arr2(1 To UBound(arr2) + 1)
        End If
        x = 0
    End If
Next i
Range("C2:C" & lr).Clear
Range("C2").Resize(UBound(arr2), 1) = Application.WorksheetFunction.Transpose(arr2)
End Sub



Изменено: Mershik - 12.01.2021 16:37:56
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, при попытке запустить макрос получаю ссобщение об ошибке :(
[img]blob:https://www.planetaexcel.ru/aaaf6cad-eca9-4668-88b5-fe4122a29ac8[/img]
 
Barmaldon, yне понятно что вы там приложили, ну может макрсоы отключены
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Barmaldon написал:
(расширенный НЕ подходит)
Почему?
формулу не менял, она в с2. Критеии Лист1!$C$1:$C$2 для расширенного фильтра
не хотите расширенный, то сделайте с ней доп. столбец и фильтруйте что больше 0 уже через автофильтр.
Изменено: БМВ - 12.01.2021 16:48:15
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх