Страницы: 1
RSS
Очередное сравнение таблиц с одинаковой структурой
 
Добрый день. Надстройки ставить нельзя. Пример приложу позже если надо, пока не могу(т.к. с телефона) Берем две таблицы с одинаковой структурой A:Z, находящихся на разных листах одной книги. 1я строка заголовки.

Требуется в основную таблицу На листе NAME1 добавлять данные из листа NAME2.

Соответственно я вижу 2 сценария
1. Дублей нет, просто перенести
2. Дубли есть.Дубли ищем по столбцу C. В столбце P стоит дата, нам нужен самый свежий (причем т.к. данные подливаются, то на листе NAME2 даты всегда новее)


Вижу два пути
1 Перенести все, удалить дубли с критерием по свежей дате
2 Переносит построчно, с заменой дублей На листе NAME1 из листа NAME2.


Я так понимаю это два разных пути, какой будет быстрее? Я в програмировании 0, но с макрорекодером дружу и по аналогии иногда получается из цепочки макросов создать нужное. Может поможете что можно взять за основу. Или поможете написать готовый макрос. И еще, ВАЖНО что бы на других листах не съезжали формулы(хотя это наверное надо пробывать на практике и если что сливать таблицы в отдельном файле, а потом переносить )
 
Я бы руками это мог сделать например через ВПР, но таблица over 80 000 строк и это не выход
 
Добрый день!
Цитата
mihail_ms написал:
позже если надо
нужно, желательно в виде "как есть" -> "как надо".
Вникать в текст без наглядного примера мало кому интересно.
 
Код
Windows("Книга.xlsb").Activate
    Sheets("Изменения").Select
    
Range("a2:z" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.Copy

Sheets("База").Select
Range("c1").End(xlDown).Select
ActiveCell(2).Activate 'вниз
ActiveCell(, 0).Activate 'влево
ActiveCell(, 0).Activate 'влево
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

 ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Add Key:=Range _
        ("P:P"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("База").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveSheet.Range("$A:$Z").RemoveDuplicates Columns:=3, Header:= _
        xlYes
End Sub


Решено через костылики))  Выделяем на листе изменения и копируем, переходим в лист База идем по столбцу С  вниз(т.к. в а есть пустые), переходим на строку вниз и на две ячейки в лево, вставляем данные , сортируем по столбцу P от новых к старым, удаляем дубли по столбцу С
...
Profit(Но это не точно)

_____________________________________________
Я же не виноват, что я мастер эпистолярного жанра)
Страницы: 1
Наверх