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

Страницы: 1
Сравнение диапазона столбцов, Хочу финансово поучавствовать в расширении Плекса :)
 

Продублирую проблему из другого топика.  Вроде как абосютно тривиальный вопрос, но поиск не помог. Есть  дубликаты разбросанные по нескольким столбцам. Необходимо проверить  столбец 1 на дубли из 2и3.

Это только пример задачи. Таких  столбцов может быть 4-7 (а иногда до 40 и более) строк в столбцах  по-разному - 10к...1млн. Сводить их в один не вариант по причине размера.  5-40 раз прогонять ПЛЕКСОМ тоже муторно и часто ошибки: из-за рутины  допускаешь пропуски и повторы. Этим приходится заниматься ежедневно.  Плекс работает только по 2 столбцам, а если их больше, то игнорирует.

Самой близкой была реализация Sceptic.  т.е. указываешь столбец для проверки и диапазон столбцов с которыми  сравниваешь. Только в предложенном варианте необходимо точно указывать  конец списка, поскольку если кликнуть (как в плексе) весь столбец, то он  и отмечает весь столбец до конца цветом. К сожалению на таких больших  выборках любой из предложенных вариантов работает крайне медленно.

Меня интересует модификация самой надстройки плекс. Не являюсь филантропом, но если будет полезно еще кому-то, почему и нет.

В плексе уже есть даже похожая реализация в наборе Уникальные. Но  там удаляются повторы по строкам диапазона, а как напр сделать проверку  по столбцам?

Минимум: сравнение одного столбца с дианазоном столбцов.

Оптимально: сравнение одного диапазона столбцов с другим диапазоном столбцов.

Понятно ли я описал задачу? Сколько это будет стоить?

Сравнение диапазона столбцов, Хочу финансово поучавствовать в расширении Плекса :)
 

Продублирую проблему из другого топика. Вроде как абосютно тривиальный вопрос, но поиск не помог. Есть дубликаты разбросанные по нескольким столбцам. Необходимо проверить столбец 1 на дубли из 2и3.

Это только пример задачи. Таких столбцов может быть 4-7 (а иногда до 40 и более) строк в столбцах по-разному 10к -1млн. Сводить их в один не вариант по причине размера. 5-40 раз прогонять ПЛЕКСОМ тоже муторно и часто ошибки: из-за рутины допускаешь пропуски и повторы. Этим приходится заниматься ежедневно. Плекс работает только по 2 столбцам, а если их больше, то игнорирует.

Самой близкой была реализация Sceptic. т.е. указываешь столбец для проверки и диапазон столбцов с которыми сравниваешь. Только в предложенном варианте необходимо точно указывать конец списка, поскольку если кликнуть (как в плексе) весь столбец, то он и отмечает весь столбец до конца цветом. К сожалению на таких больших выборках любой предложенные варианты работают крайне медленно.

Меня интересует модификация самой надстройки плекс.Не являюсь филантропом, но если будет полезно еще кому-то, почему и нет.

Минимум: сравнение одного столбца с любым дианазоном других столбцов.

Оптимально: сравнение диапазона столбцов с другим диапазоном столбцов.

Понятно ли я описал задачу? Сколько это будет стоить?

Изменено: Lobster - 26.08.2019 17:36:52
Жестокая опция в сравнении диапазонов, Если неудачно поставишь курсор, лишишься данных.
 

Реализацию сравнения списков в плесе нахожу самой удачной - работает быстро и никогда не подводила. НО есть большите грабли - там поумолчанию результат не окрашивается, а выводится отдельным списком. Если эту опцию забыть убрать, а курсор оставить в неподходящем месте (напр в столбце с данными), то содержимое столбца замениться (читай удалиться) без возможности отмены. Если бы окрасилось по ошибке, то это не проблема, а вот удаление это жестоко. Если бы автор переключил эту опцию по умолчанию было бы замечательно.

Изменено: Lobster - 26.08.2019 16:55:25
Выделение дубликатов из несколькоих столбцов
 
Вроде как абосютно тривиальный вопрос. Поиск не помог.
Есть дубликаты разбросанные по нескольким столбцам. Необходимо проверить столбец 1 на дубли из 2и3.
Это только пример задачи. Таких столбцов может быть 4-7 (а иногда до 40 и более) строк в столбцах по-разному 10к -1млн. Сводить их в один не вариант по причине размера. 5-40 раз прогонять ПЛЕКСОМ тоже муторно и часто ошибки: пропуски и повторы. Этим приходится заниматься ежедневно. Макрос пробовал писать, но работает крайне медленно. Плекс работает только по 2 столбцам, а если их больше, то игнорирует. Подскажите плс куда рыть.
CPU для больших массивов данных в Excel., Компьютер для простых больших таблиц ecxel’a
 
Добрый день!
Друзья у меня к Вам вопрос на который я так и не могу найти внятного ответа. Какой выбрать компьютер для простых но больших таблиц в excel? Может ктолибо поможет мне разобраться в вопросе железа для комфортной работы в в Экселе.
Я сортирую, копирую, фильтрую, сравниваю диапазоны и выполняю тому подобные операции на массивах ок 4-8 млн ячеек. В ячейке обычно 1-2 слова. Это плоские однотабличные БД.
На ноутбуке стоит W7, i7-3720QM, 16 GB RAM, SSD. Второй комп. i7 5820k, 16 GB, raid0 2xSSD. И работа с таким количеством данных выглядит весьма вяло. Но главное что процессоры зачастую загружены на 10-20%, бывает на некоторых операциях больше, но это редко. Это значит что для моих задач эти мощности просто деньги на ветер.
Формулы, если используются, только простые и для фрагмента макс. 500 тыс. ячеек.
Кокой проц загрузится моими задачами в экселе на 100% и можно будет выполнять операции не 5-7 мин, а 1 мин?
Другое ПО не предлагать. Excel критичен т.к. это только промежуточное звено в обработке, но все завязано на нем.
(это я тоже читал http://www.passmark.com/forum/showthread.php?3623-What-is-best-processor-for-complex-excel-workbook)
Бюджет до 2k$
Изменено: Lobster - 16.12.2016 18:43:45
Когда ждать версии на 64 бита?
 
В общем вопрос разработчику. Когда ожидать версии на 64 бита? А то данных  все больше и больше и работать на 2 компьютера не удобно.
Несколько столбцов в один, собрать по списку столбцы разной длины в один на новом листе
 
Я просмотрел все темы сборки нескольких столбцов в один. Но все они мне не подходят.
Может кто подскажет есть ли где готовое решение.
Что требуется:
Есть столбцы на листе 1. Длина столбцов  разная. Мне нужно собрать в один столбец все из списка А1 и в другой из списка B1. Результирующие столбцы нужно собрать на листе 2 сотв. в A и B. Поскольку списки могут быть большие нужна проверка на длину результирущих и если она прешышает 1048576 начать новые две колонки напр. в С и D.

Парсер преобразования списка колонок я сделал по примерам с форума и сети, но поскольку программером не являюсь работает это все хозяйство очень коряво.
Даже колонки собирает как-то в кучу, но в последнее время начало зависать, а кривизна рук не позволяет это все допилить.


Сама задача в приложении

Код здесь,
Я честно старался во всем разобраться сам, но знаний не хватает.
Код
Sub kolonkiwodnu()
    
       Dim txt$, txt1$, txt2$
' ===========Colomn yellow===========================
    txt$ = Worksheets("1").Range("A1").Value
 
    
    arr = ParseColumnsStringEx(txt)
 
For i = LBound(arr) To UBound(arr): Debug.Print arr(i) & ",";: Next i: Debug.Print
    columnsListE$ = Join(arr)
    Worksheets(1).Cells(2, 3) = columnsListE$
'zapolnenie stolbca A
    Application.ScreenUpdating = False
    With Worksheets(1)
  
    For i = LBound(arr) To UBound(arr)
        ActiveColomn = CInt(arr(i)) 'prieobrazowanie I w integer potomu czto budet osibka w .Cells()
        LastRow = .Cells(Rows.Count, ActiveColomn).End(xlUp).Row
            For ActiveRaw = 2 To LastRow
                If .Cells(ActiveRaw, ActiveColomn) <> "" Then Worksheets(2).Cells(Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = .Cells(ActiveRaw, ActiveColomn)
            Next
    Next
   ' .Range("A:A").RemoveDuplicates Columns:=1
    End With
    Application.ScreenUpdating = True
        
' ===========Colomn green===========================
    txt$ = Worksheets("1").Range("B1").Value
    arr2 = ParseColumnsStringEx(txt)
    
    For i = LBound(arr2) To UBound(arr2): Debug.Print arr(i) & ",";: Next i: Debug.Print
     columnsListD$ = Join(arr2)
     Worksheets(1).Cells(3, 3) = columnsListD$
        Application.ScreenUpdating = False
    'zapolnenie stolbca B
    Application.ScreenUpdating = False
    With Worksheets(1)
    
    For i = LBound(arr2) To UBound(arr2)
        ActiveColomn = CInt(arr2(i)) 'prieobrazowanie I w integer potomu cto budet osibka w .Cells()
        LastRow = .Cells(Rows.Count, ActiveColomn).End(xlUp).Row
            For ActiveRaw = 2 To LastRow
                If .Cells(ActiveRaw, ActiveColomn) <> "" Then Worksheets(2).Cells(Worksheets(2).Cells(Rows.Count, 2).End(xlUp).Row + 1, 2) = .Cells(ActiveRaw, ActiveColomn)
            Next
    Next
   ' .Range("A:A").RemoveDuplicates Columns:=1
    End With
    Application.ScreenUpdating = True

   
 End Sub
Function ParseColumnsStringEx(ByVal txt$, Optional ByRef norm1$, Optional ByRef norm2$) As Variant
    On Error Resume Next
    Const enARR$ = "ABCEHKMOPTX", ruARR$ = "???????????"
    Const cc& = 256
    For i = 1 To Len(enARR$): txt = Replace(txt, Mid(ruARR$, i, 1), Mid(enARR$, i, 1)): Next i
    txt = Replace(txt, " ", ""): txt = Replace(txt, ";", ",")
    txt = Replace(txt, ":", "-"): txt = Replace(txt, ".", ","): txt = UCase(txt)
    For i = 1 To Len(txt)
        If Not Mid(txt, i, 1) Like "[A-Z0-9,-]" Then Mid(txt, i, 1) = ","
    Next i
    While InStr(1, txt, ",,"): txt = Replace(txt, ",,", ","): Wend
    While InStr(1, txt, "--"): txt = Replace(txt, "--", "-"): Wend
    txt = Replace(txt, ",-", ","): txt = Replace(txt, "-,", ",")
    If Left(txt, 1) = "-" Or Left(txt, 1) = "," Then txt = Mid(txt, 2)
    If Right(txt, 1) = "-" Or Right(txt, 1) = "," Then txt = Left(txt, Len(txt) - 1)
    norm1$ = Replace(txt$, ",", ";")
    arr = Split(txt$, ","): Dim n As Long: ReDim tmpArr(0 To 0)
    For i = LBound(arr) To UBound(arr)
        spl = Split(arr(i), "-")
        For j = LBound(spl) To UBound(spl)
            cn& = 0: cn& = ColumnNameToColumnNumber(spl(j)): If cn& Then spl(j) = cn&
            If Not spl(j) Like String(Len(spl(j)), "#") Then spl(j) = ""
        Next j
        If Val(spl(0)) > cc& Then spl(0) = "": spl(UBound(spl)) = ""
        If Val(spl(UBound(spl))) > cc& Then spl(UBound(spl)) = cc&
        If UBound(spl) > 1 Then arr(i) = spl(0) & "-" & spl(UBound(spl)) Else arr(i) = Join(spl, "-")
        If UBound(spl) = 1 Then If spl(0) = spl(1) Then arr(i) = spl(0)
        If UBound(spl) = 1 Then If spl(0) = "" Then arr(i) = spl(1)
    Next i
    norm2$ = Join(arr, ","): norm2$ = Replace(norm2$, ",-", ","): norm2$ = Replace(norm2$, "-,", ",")
    While InStr(1, norm2$, ",,"): norm2$ = Replace(norm2$, ",,", ","): Wend
    If Left(norm2$, 1) = "," Then norm2$ = Mid(norm2$, 2)
    If Right(norm2$, 1) = "," Then norm2$ = Left(norm2$, Len(norm2$) - 1)
 
    For i = LBound(arr) To UBound(arr)
        Select Case True
            Case arr(i) = "", Val(arr(i)) < 0
            Case IsNumeric(arr(i))
                tmpArr(UBound(tmpArr)) = arr(i): ReDim Preserve tmpArr(0 To UBound(tmpArr) + 1)
            Case arr(i) Like "*#-#*"
                spl = Split(arr(i), "-")
                If UBound(spl) = 1 Then
                    If IsNumeric(spl(0)) And IsNumeric(spl(1)) Then
                        If spl(0) <= cc& Then
                            If spl(1) > cc& Then spl(1) = cc&
                            For j = Val(spl(0)) To Val(spl(1)) Step IIf(Val(spl(0)) > Val(spl(1)), -1, 1)
                                tmpArr(UBound(tmpArr)) = j: ReDim Preserve tmpArr(0 To UBound(tmpArr) + 1)
                            Next j
                        End If
                    End If
                End If
        End Select
    Next i
    If UBound(tmpArr) Then
        ReDim Preserve tmpArr(0 To UBound(tmpArr) - 1)
        ParseColumnsStringEx = tmpArr
    End If
End Function
 
Function ColumnNameToColumnNumber(ByVal txt$) As Long
    On Error Resume Next
    ColumnNameToColumnNumber = Split(Application.ConvertFormula(txt$ & "1", xlA1, xlR1C1, True), "C")(1)
End Function
Аналог PLEXA для MS office 64 Bit - сравнение диапазонов
 
Требуется в основном сравнивать огромные текстовые диапазоны - 1...10 млн ячеек, выделять или удалять дубликаты. Какой есть аналог plexa или другая надстройка в которой это таекже грамотно реализовано как и в PLEX'e. Office 64bit критичен - в 32 битах не хватает памяти.
КАК ОПЛАТИТЬ за надстройку, Друзья, помогите связаться с автором или посоветуйте как это сделать
 
Вскоре закончится количество бесплатных запусков екселя.
Я проживаю вне досягаемости платежных систем перечисленных автором для оплаты за надстройку.
Могу перевести деньги через WesternUnion или PayPal.
Несколько раз пробовал явязаться с автором чтобы решить с ним этот вопрос... но в ответ тишина.
Помогите плс.
Страницы: 1
Loading...