Страницы: 1
RSS
Поиск более двух знаков препинания/символов через настраиваемый фильтр
 
Добрый день,
Как отфильтровать ячейки по знакам/символам в столбце за один подход, если знаков более двух(например (.)(,)(-)(/))?
Может можно как-то их выделить в строке поиска настраиваемого фильтра? Пробовал писать так ".";",";"-";"/"; - не фильтрует.
 
Доп. столбец поможет.
 
Важен минимум операций(много таблиц по >70000строк в каждой). Если без вариантов, то буду плодить столбцы конечно. Но надеюсь на подсказку.
 
2. Макрос
3. Расширенный фильтр не пробовали применить?
 
Познания в этом вопросе минимальные. Нужна помощь.
 
Так какая помощь? Закончилась... На чем помогать?
 
В том же расширенном фильтре надо все требуемые знаки указать в какой-то последовательности с какими-то разделителями. Я уже попробовал все варианты ,как мне кажется.
 
Остался последний вариант... Показать, наконец, пример данных и что от них требуется!
 
Держите, чтобы было что в допстолбец вставить (перечень знаков препинания при в [] необходимости дополните сами). Функция возвращает ИСТИНА при нахождении ЛЮБЫХ двух знаков препинания, идущих подряд
Код
Function DblC(Name As String) As Boolean
Dim L As Long, aName As String
For I = 1 To Len(Name)
    aName = Mid(Name, I, 1)
    If aName Like "[/\.,-]" Then L = L + 1 Else L = 0
    If L = 2 Then
        DblC = True
        Exit Function
    End If
Next I
End Function


 
 
Цитата
CheT написал: Познания в этом вопросе минимальные. Нужна помощь.
off
Спасение утопающего - дело рук самого утопающего. А если он ленив и безволен, то дело за оплаченным спасателем. Найти их можно попытаться здесь -  раздел "Работа", платный.
ps Или же все-таки осваиваем Правила, Приемы, Поиск и... возвращаемся со своими попытками на форум... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Вот еще вариант, который отслеживает наличие 2-х подряд ОДИНАКОВЫХ (любых) знаков препинания
Код
Function DblC1(Name As String) As Boolean
Dim S, aName As String
For I = 1 To Len(Name)
    aName = Mid(Name, I, 1)
    If aName = S Then
        DblC1 = True
        Exit Function
    End If
    If aName Like "[/\.,-]" Then S = aName
Next I
End Function


Z, хотя Вы, безусловно, правы :(
 
Формула ЕСЛИ решила вопрос. Правда одним подходом не обошлось. Ну да ничего.
Всем спасибо.
 
Цитата
CheT написал: ... Формула ЕСЛИ решила вопрос.
Видимо, при вашем активном участии. С другими - кто пойдет по вашим стопам - поделиться решением не желаете?.. ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Непосредственно при моем активном, уважаемый Z.
1. Скопировал столбец, в котором находятся данные для анализа в отдельный столбец, дабы не потерять данные чего-то случайно "наворотив".
2. Комбинацией Ctrl+H последовательно заменил все знаки препинания на (*)
3. Потом, вставив справа формулу =ЕСЛИ(ПОИСК("~*";D4)>0;1;0), отловил все ячейки со знаком (*), а там где знака нет получил #ЗНАЧ!
4. Далее обычным фильтром выбрал нужные строки по единице.
Но это все долго, конечно. Особенно п.2.
 
Цитата
CheT написал: ... Но это все долго, конечно.
Спасибо, CheT! Но подразумевал, что вы покажете свой файл: было -  стало.
А с поочередной заменой - надо было  бы посмотреть функцию =ПОДСТАВИТЬ() одним махом поменять, к примеру, на "крышу" - "^"(с ней меньше мороки)... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Без формулы, которая заменила б п.2 моей процедуры, сей файл не информативен.
Лучшее что пришло в голову =ЕСЛИ(ИЛИ(D2="*.*";D2="*,*";D2="*-*";D2="*~**";D2="*~?*";);1;"";) так и не захотело работать на моем Excel 2010
А так, другому "кто пойдет по моим стопам", если будет делать все step by step, будет и так все понятно.
 
хотите облегчения работы а пример сварганить не хотите может это поможет
Лень двигатель прогресса, доказано!!!
Страницы: 1
Наверх