Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Зависание excel при сортировке по цвету
 
Максим Зеленский, вы абсолютно правильно меня поняли. А вы случайно не встречали "в ваших эти интернетах" макрос подобного типа?
Зависание excel при сортировке по цвету
 
Z, подход известен, но что вы пытаетесь этим сказать - загадка  ;)   А финальной частью является попытка проанализировать похожие значение и удалить те которые повторяются (в случае использования "Удалить дубликаты" я не могу наблюдать какие значение он удаляет).
Александр Моторин, фильтр зависает точно так же как и сортировка. Под выражением "отсортировать повторяющиеся значение" - имеется ввиду, что мне необходимо переместить все пары повторов вверх таблицы, для последующего анализа данных. Красить за тем, что бы визуально можно было отличить повторы и посмотреть, реально ли это повтор или просто совпадение (по номеру например).  
Зависание excel при сортировке по цвету
 
Z, сортировка по цвету ячейки (функция "Настраиваемая сортировка" ;) , мне необходимо все повторяющиеся значения (которые предварительно были выделены при помощи цвета через условное форматирование) перенести вверх таблицы.

Александр Моторин, а вы случаем не видели на просторах инета макросы, которые смогли бы отсортировать повторяющиеся значения?
На сайте видел способ в котором в соседний столбец можно было перенести hex (кажется) код цвета ячейки, но к сожалению такой прикол с условным форматирование не работает =(
Зависание excel при сортировке по цвету
 
Добрый день. Подскажите пожалуйста, как справится с зависание excel при сортировке данных по цвету ячейки (цвет присваивается для уникальных значений при помощи условного форматирования). База на 250к строк с 7 столбцами. Заливка уникальных значений происходит достаточно быстро (меньше 30 сек), а вот при попытке сортировать результат, excel зависает еще на этапе способа сортировки. Вроде компьютер не самый древний, должен с такой задачей справляться на раз два, но нет. Помогите пожалуйста.

P.s Excel 2007, windows 7!

Спасибо.
Отделения значения по регулярке пользователя
 
ikki,Максим Зеленский, спасибо за помощь. С кавычками это я по невнимательности затупил, а вот по поводу обязательного числа сабматчей - не знал. Я думал, там нет строго соответствия и недостающие сабматчи идут как пустая строка.

Эмм, хотел в новой теме выложить результат своей работы, но не вижу соответствующей ветки. Так что кину сюда, вдруг кому-либо понадобится или кто-то с поиска придет. Кстати эта форма легко встраивается в plex, что очень помогает.

В общем вот код (особо я не заморачивался, да и знаний мало что-бы что-то красивое сделать):
Скрытый текст
И в архиве - сама форма.
Изменено: Aligatro - 01.10.2014 21:56:04
Отделения значения по регулярке пользователя
 
Юрий М, простите. Инфа из предыдущего треда, все-таки оказалась ненужной. Решил сортировать результаты только в заранее выделенном диапазоне.
Отделения значения по регулярке пользователя
 
Добрый вечер, уважаемые форумчане. В общем меня поперло на драйв и я тут решил написать простенький макрос который по пользовательскому regexp отделял бы значения в новый столбец. За основу взял старый скрипт. Сначала попытался сделать форму с текстовым полем на основе значения которого производить поиск по маске, но что-то пошло не так, форма не заработала =(

Скрытый текст

В последствии нашел немного иной способ который позволил бы делать тоже самое но без доп формы ( на основе "Application.InputBox"  ). Вроде все должно было сработать, но опять не судьба. Постоянно либо выдает ошибку типа "Type is mismatch" или ничего не происходит, то бишь значения не отделяются.

Скрытый текст

Помогите пожалуйста разобраться. Спасибо =)
Изменено: Aligatro - 30.09.2014 01:04:31
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
Кстати, помогите пожалуйста разобраться с маленьким ньюансом. Можно ли как то переделать код так, что бы в этом участке
Код
    With Лист1
     M = .Range("A1:G" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    End With 
выбирался не заданный диапазон, а выделенный пользователем? =)
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
ikki, спасибо вам, теперь все работает так как надо. В итоге обошелся я более примитивным способом нежели в исходниках, но зато работает. Вот финальный рабочий код, вдруг кому пригодится =))
Скрытый текст
Еще раз спасибо =)
Изменено: Aligatro - 30.09.2014 02:30:54
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
Цитата
ikki пишет:
я вообще в коде не вижу. чтобы что-нибудь где-нибудь замещалось
создаётся новый лист в книге и в него выгружаются обработанные данные.
а Вам как хотелось?
Ну вот смотрите... Если применить код выше к моему примеру в первом сообщении, то будет видно, что не влазит 1 столбец с email адресами (в оригинале столбец "D"). Не знаю почему, но как бы я не пытался исправить, после выполнения макроса он замещается. Мне хочется, что бы после выполнения кода, столбцов становилось (в новом листе) на 3 больше и туда влазили (не замещаясь) все новые значения. Спасибо =)
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
P.s кстати, а можно все-же сделать поиск по последней запятой в названии фирмы?  :D
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
Doober,огромное вам спасибо. Только с вашей помощью получилось все реализовать так как я хотел. Я тут немного дополнил ваш код, но столкнулся со следующей проблемой. Вместо того, что-бы таблица расширялась на еще один доп. столбец, наоборот, замещает данные в ячейках соседнего. Пол дня убил что-бы понять в чем проблема, но так как я в синтаксисе vba не особо силен - разобраться мне не удалось. Посмотрите пожалуйста.

Скрытый текст



Спасибо
Изменено: Aligatro - 28.09.2014 05:53:48
Разделение строки в разные столбцы по признаку
 
Всем большое спасибо. Мне помогли написать макрос конкретно под мою задачу.

Ivan.kh, еще раз огромное вам спасибо за вашу вовлеченность и помощь.
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
Всем привет. Пожалуй перейду сразу к делу. В общем имеется скрипт (писал не я, помогли) который по определенному признаку (коды оператора, которые указаны в массиве) отделяет мобильные номера в таблице от городских. Скрипт работает отлично, но так как он опирается на скобки возле кода (050), иногда случаются ложные срабатывания. Я хотел бы попросить помощи у тех кто разбирается в VBA, помогите пожалуйста переделать скрипт так, что бы он детектировал номера не по скобочкам, а по следующему регулярному выражению
Цитата
\b\(?(039|050|063|066|067|068|091|092|093|094|095|096|097|098|099)\)?\s?\-?\d{3}\s?\-?\d{2}\s?\-?\d{2}\b
Единственное, я не совсем уверен в верности регулярки, кажется я ошибся с окончанием строки (\b).
Сам скрипт:
Код
Public Sub QWERT()
Dim R, C, i
Dim OD: Set OD = CreateObject("Scripting.Dictionary"
Dim T: Set T = CreateObject("Scripting.Dictionary"
Dim M(), RZ(), U() As String
Dim MB
M = Array(39, 50, 63, 66, 67, 68, 91, 92, 93, 94, 95, 96, 97, 98, 99)

'закидываем в словарь префиксы
For R = 0 To UBound(M)
    T("(0" & M(R) & "" = 1
Next R

'считываем в маассив данные
With Ëèñò1
    M = .Range("A1:G" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
    ReDim RZ(1 To UBound(M), 1 To UBound(M, 2) + 2)
    
'перебираем все строки массива
    For R = 1 To UBound(M)
'    отделяеем название фирмы
        If InStr(1, M(R, 1), "," > 0 Then
            C = Split(M(R, 1), ","(0)
            RZ(R, 1) = C
            RZ(R, 2) = Replace(M(R, 1), C & ",", ""
        Else
            RZ(R, 1) = M(R, 1)
        End If
            RZ(R, 3) = M(R, 2)
' ищем мобильные операторы

            U = Split(M(R, 3), ","
            For i = 0 To UBound(U)
            Debug.Print i, UBound(U), U(i), R
                If T.Exists(Left(U(i), 5)) Then
                    RZ(R, 4) = IIf(RZ(R, 4) = "", U(i), RZ(R, 4) & "," & U(i))
                Else
                    RZ(R, 5) = IIf(RZ(R, 5) = "", U(i), RZ(R, 5) & "," & U(i))
                End If
            Next i
            For i = 4 To UBound(M, 2)
                RZ(R, i + 2) = M(R, i)
            Next i
    Next R
    Worksheets.Add
    Range("A1".Resize(UBound(RZ), UBound(RZ, 2)) = RZ
    Cells.Columns.AutoFit
    Cells.Rows.AutoFit

End Sub
Кстати, если это возможно было бы кайфово, если бы при отборе названий фирмы, можно было бы опираться не на первую запятую а на последнюю в строке.

Большое спасибо.
Изменено: Aligatro - 28.09.2014 00:09:57
Разделение строки в разные столбцы по признаку
 
Ivan.kh, а еще подскажите пожалуйста, в формуле которую вы привели для отделения моб номера, можно ли ориентироваться не на скобки, а на цифры. Просто формула не срабатывает в случае если в коде оператора не проставлены скобки. Или это не реально так как в таком случае нельзя будет отследить нач. позицию?
Разделение строки в разные столбцы по признаку
 
Ок, буду курить ссылку которую вы скинули. Простите за наглость, но подскажите пожалуйста, можно ли как то после консолидации ячеек удалить дублирующие значения в столбце "телефон"? Если много мороки, то фиг с ним.

И второе, скажите пожалуйста, а при разделении столбца А в моем примере можно ли просто при помощи формулы выделить слова в которых не более трех (или от двух до трех) символов и перенести в другой столбец. Просто я посмотрел в итоге в предполагаемом столбце "тип регистрации" будет весьма много мусора.

Спасибо вам большое.
Изменено: Aligatro - 26.09.2014 23:41:11
Разделение строки в разные столбцы по признаку
 
Ivan.kh, да практически то что я хотел. Скажите пожалуйста, а в формуле по которой вы производите поиск по коду оператора, можно ли вставить все коды разом, что-бы просто был столбец "Мобильный телефон"? Спасибо вам огромное.

p.s или оставить как есть и после просто консолидировать столбцы в единый.
Разделение строки в разные столбцы по признаку
 
Доброго времени суток, дорогие форумчане. Перейду сразу к описанию проблемы. В общем имеется большая база данных (более 70тыс строк). В этой базе по возможности мне необходимо сделать следующее.В столбце с телефонными номерами компании (от 1 до 5 номеров), нужно выделить и распределить в отдельный столбец моб. номера телефона, по коду оператору. Сами номера слишком неоднородны и моб. телефон может находится как на первом месте в строке так и на 3 (то есть просто разделить по столбцам не получится). Меня интересует, можно ли по определенному словарю с кодами операторов (039,050,063,066,067,068,091,092,093,094,095,096,097,098,099 ) выделить и отделить все значение которые содержат данные 3 цифры в начале номера.
  1. Можно ли разделить стандартными средствами строку на столбцы только по первому признаку? То бишь в строке есть несколько запятых, но мне нужно что бы строка отделялась только по первой запятой, без учета последующих. В примере, мне необходимо отделить Название компании и ее тип регистрации (ЧП, ПП, ТОВ, ООО, и т.д)
  2. Насколько я понимаю, exсel не умеет работать с regexp, посему меня интересует, есть ли какие-то аналоги внутри таблиц, при помощи которых можно было бы написать регулярное выражение?
P.s В принципе для меня не имеет значение в какой программе можно выполнить подобные задачи, если у вас на примете есть спец софт который заточен именно под такие операции, посоветуйте пожалуйста, я могу воспользоваться им и в последствии перенести инфу обратно в таблицу.

Заранее приношу извинения за сумбурность мыслей и хочу выразить огромную благодарность всем кто откликнится. Большое спасибо.
Страницы: 1
Наверх