Страницы: 1
RSS
Преобразование таблицы. Данные одинаковых периодов разместить в одну строку.
 
Доброго времени суток

Возможно ли преобразовать таблицу 1 в таблицу 2 (см.вложение)

Заранее благодарен за любую оказанную помощь
 
Код
Sub mrshkei()
Dim arr, i As Long, arr2, arr3, n As Long, col As New Collection, col2 As New Collection
LR = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A3:D" & LR)
For i = LBound(arr) + 1 To UBound(arr)
    On Error Resume Next
    col.Add arr(i, 1) & ":" & arr(i, 2), CStr(arr(i, 1) & ":" & arr(i, 2))
Next i

ReDim arr2(1 To col.Count, 1 To LR)
For i = 1 To col.Count
arr3 = Split(col(i), ":")
    arr2(i, 1) = arr3(0)
    arr2(i, 2) = arr3(1)
    k = 3
    For n = LBound(arr) + 1 To UBound(arr)
        If CStr(arr(n, 1)) = arr3(0) And arr(n, 2) = CDate(arr3(1)) Then
            arr2(i, k) = arr(n, 3)
            arr2(i, k + 1) = arr(n, 4)
            k = k + 2
        End If
    Next n
Next i
Range("F4").Resize(UBound(arr2), UBound(arr2, 2) - LBound(arr) + 1) = arr2
End Sub

Изменено: Mershik - 02.03.2021 22:39:16
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, попробовал ТН 2 не правильно свернулся (не подтянулась сумма)
201.12.2020057A102A4,78
 
Может как-то так. См. файл
Изменено: New - 02.03.2021 23:02:10
 
Mershik, если по одному ТН в одном периоде несколько КВВ, макрос не подтягивает суммы, только по последнему КВВ подтягивает
 
mokrzhevsky, изменил посмотрите
Изменено: Mershik - 02.03.2021 22:39:36
Не бойтесь совершенства. Вам его не достичь.
 
New, именно то что нужно
Всем огромное спасибо за оказанную помощь

P.S.
Я добавил в таблицу 1 (исходные данные) 18 строчек, после предобразования (свода) он показывает только 17 строчек
как это можно поправить?
 
Приложите новый пример.
P.S. А обновлённый код от Mershik на нём как работает? Нормально?
Изменено: New - 02.03.2021 22:51:26
 
New, сейчас я отсортировал по ТН, периоду и КВВ собирает отлично
Спасибо еще раз

Mershik, тоже идеально.

вы просто волшебники. Спасибо большое  
 
Если вас заинтересует что делает каждая строка в коде, то я добавил комментарии в свой код. Заново скачайте мой файл с макросом
 
New, прикольно ))) как раз для таких чайников как я  :oops:  
 
mokrzhevsky, свои сообщения можно редактировать. В том числе и добавлять текст.: и было бы не 5 сообщений, а одно!.
 
mokrzhevsky,  Это Mershik'у спасибо. Я его код взял за основу.
P.S. снова обновил свой файл выше, дописал ещё код чуть-чуть
Изменено: New - 02.03.2021 23:05:35
 
Юрий М, извините пжл я новичок в этом
учту в дальнейшем :)
 
Всем доброго вечера
Волшебства не получилось :(
При кол-ве строк 8500 макросы не срабатывают :(
Изменено: mokrzhevsky - 03.03.2021 21:43:06
 
Они не срабатывают не из-из количества строк, там возможно немного другая структура или ещё что-нибудь. Выложите первые 10-20 строк файла.
 
Скрытый текст
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
вот уже 3 версии макроса )
P.S. В работоспособности своего кода я не уверен, но у ребят должно всё работать )
 
Ігор Гончаренко, очень быстро трансформирует,  прикольно

Спасибо большое :)
 
у меня 0.3 сек на заурядном ноуте
быстро - это хорошо, но самое важное - это правильный результат
первых несколько ТН посмотрел - нормально, остальное  вам проверять самостоятельно)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, еще раз огромное спасибо,

быстро - это не то слово :) выборочно просмотрел результат - ИДЕАЛЬНО ;)

как вообще такое возможно
Изменено: mokrzhevsky - 03.03.2021 22:59:33
 
я сам в шоке!
это случайно, первый раз. 35 лет работаю с Excel - когда-нибудь должно было хоть что-то начать получаться
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,
35 лет работаю с Excel
Ты еще должен помнить Lotus 1-2-3  :D
 
Всем доброго дня
Пожалуйста помогите
Можно чуть чуть усложнить задачу
Пример отчета во вложении

Заранее благодарен за любую оказанную помощь
Изменено: mokrzhevsky - 04.03.2021 18:50:19
 
Люди... человеки :)
может кто-нибудь помочь?
Страницы: 1
Наверх