Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.05.2015
Сообщений: 2
1

Слияние таблиц

05.05.2015, 22:21. Просмотров 753. Ответов 4
Метки нет (Все метки)


Дано 2 таблицы c одинаковым идентификатором, нужно объединить их в одну. Проблема в том, что в одной таблице 1 идентификатору соответствует одна строка, а во второй таблице на 1 идентификатор можно приходиться 30-50 строк.
Пример во вложении, на Sheet1 исходные данные, на Sheet2 - что нужно получить. Также в приведенном примере указано небольшое количество данных, на самом же деле в одной таблице более 2000 строк и 20 столбцов. Во второй таблице порядка 130 000 строк и 10 столбцов.
Заранее всем спасибо за советы и помощь.
0
Вложения
Тип файла: xlsx example.xlsx (33.7 Кб, 3 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 22:21
Ответы с готовыми решениями:

Слияние таблиц
Ситуация такая: Есть 2 таблицы. В одной ссылки, в другой эти же ссылки (не упорядочены) и 40 доп...

Word: макрос для таблиц. Отформатировать определенный вид таблиц
В документе два вида таблиц. Первый тип таблиц имеет вертикальную шапку сбоку (левый столбец) и...

Генерация и слияние
Проблема следующая. При первой генерации с третий строчки, так как за основу взяты номера из...

Слияние больших файлов
Доброго времени суток! Есть несколько больших текстовых и excel файлов. Делаю импорт из них на...

4
11190 / 3563 / 632
Регистрация: 13.02.2009
Сообщений: 10,656
05.05.2015, 22:43 2
Макрос+массив+словарь
Таблицы на разных листах?
0
0 / 0 / 0
Регистрация: 05.05.2015
Сообщений: 2
05.05.2015, 22:47  [ТС] 3
Это для меня прям темный лес..

Таблицы на разных листах, потому что огромные и имеют разную размерность.
В примере я привела лишь части таблиц.
0
11190 / 3563 / 632
Регистрация: 13.02.2009
Сообщений: 10,656
05.05.2015, 23:23 4
В общем случае это так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub QWERT()
    Dim T1(), T2(), RZ(), R, C, T, SM, Rd
    Dim TD: Set TD = CreateObject("Scripting.Dictionary")
    T1 = Лист1.UsedRange.Value
    T2 = Лист2.UsedRange.Value
     SM = UBound(T2, 2) - 1
    For R = 1 To UBound(T2)
        TD(T2(R, 1)) = R
    Next R
    
    ReDim RZ(1 To UBound(T1), 1 To UBound(T1, 2) + SM)
    
    For R = 1 To UBound(T1)
        If T1(R, 1) <> "" Then
            RZ(R, 1) = T1(R, 1)
            If TD.Exists(T1(R, 1)) Then
                Rd = TD(T1(R, 1))
                For C = 1 To SM
                    RZ(R, C + 1) = T2(Rd, C + 1)
                Next C
            End If
        End If
        
        For C = 2 To UBound(T1, 2)
            RZ(R, C + SM) = T1(R, C)
        Next C
    Next R
    
    Лист3.Cells.ClearContents
    Лист3.Range("A1").Resize(UBound(RZ), UBound(RZ, 2)) = RZ
End Sub
1
11190 / 3563 / 632
Регистрация: 13.02.2009
Сообщений: 10,656
05.05.2015, 23:26 5
Не стал дублировать идентификатор и не делал объединение ячеек
1
Вложения
Тип файла: rar example (13).rar (32.3 Кб, 10 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2015, 23:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Слияние документов Word
Всем привет ... проблема.....вот вчем есть макрос....которий запускается с ексель но ...

Слияние нескольких книг в одну
Добрый день, я в VBA новичёк, вопрос такой: можно ли с помощью VBA написать програмку которая...

Слияние массивов по названию товара
Доброго времени суток уважаемые знатоки Excel вынужден в очередной раз обратиться с просьбой ...

Слияние WORD c базой ACCESS
Пытюсь слить в документ WORD данные из запроса ACCESS. Подключаюсь через ODBC, в результате выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.