Страницы: 1
RSS
Перенос данных из одной таблицы в другую, Перенос данных из одной таблицы в другую
 
Добрый день! Очень нужна помощь. Как перенести данные из одной таблицы в другую. При том что строки одной таблицы могут не соответствовать строкам в другой таблице и соответственно сделать это просто копированием нельзя. А искать по фильтру и копировать не вариант если в таблице более 150 позиций и они могут различаться друг от друга. Как можно это осуществить?
Изменено: swetik - 20.06.2018 21:26:07 (Слишком большой объем данных)
 
swetik, добрый и Вам. А что правила говорят о файле-примере?
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
Понимаете, файл-пример и рабочий файл- это две большие разницы.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Да и с тремя можно ВПР использовать, если сделать один допстолбец в источнике, правда или его нужно воткнуть левее, или использовать "левый" ВПР, или связку индекс+поискпоз.
Но это будет НЕ ПЕРЕНОС!
Изменено: Hugo - 20.06.2018 21:05:30
 
Как идея цикл в цикле.
В наружном цикле бежишь по строкам таблицы получателя, а во внутреннем по строкам таблицы источника. Внутри второго цикла проверка на совпадение данных по которым сравниваются строки, ну и перенос данных
Правда метод, так сразу без подготовки, жутко медленный, но если надо один раз то можно и подождать.
И еще, значения по которым идет сравнение должны быть уникальны в таблице источника, т.к. всегда будут переноситься только первое или последнее найденное значение

Про оптимизацию этого метода: 1- при совпадении значений и переносе данных, выход из внутреннего цикла; 2-если списки отсортировать, то можно будет не начинать внутренний цикл сначала; 3- если копировать значения в массивы перед обработкой, то метод получается просто улетный. Таблицы с более чем 10000 записей каждая обрабатываются за несколько секунд
 
Цитата
Anatoliy Pychev написал:
Как идея цикл в цикле.В наружном цикле бежишь по строкам таблицы получателя, а во внутреннем по строкам таблицы источника. Внутри второго цикла проверка на совпадение данных по которым сравниваются строки, ну и перенос данныхПравда метод, так сразу без подготовки, жутко медленный, но если надо один раз то можно и подождать.И еще, значения по которым идет сравнение должны быть уникальны в таблице источника, т.к. всегда будут переноситься только первое или последнее найденное значениеПро оптимизацию этого метода: 1- при совпадении значений и переносе данных, выход из внутреннего цикла; 2-если списки отсортировать, то можно будет не начинать внутренний цикл сначала; 3- если копировать значения в массивы перед обработкой, то метод получается просто улетный. Таблицы с более чем 10000 записей каждая обрабатываются за несколько секунд
Я даже не знаю и не понимаю как это делать.  
 
Цитата
swetik написал:
Я даже не знаю и не понимаю как это делать.  
swetik, откройте файл, включите макросы и нажмите на листе "Сюда" на кнопку "Перенести"    :)
Anatoliy Pychev, здравствуйте! Тоже думал про массив, но умею только выбрать по условию и потом все разом выгрузить, и в выгрузке получается - все полученные значения идут подряд, одно под другим. А в этой теме задача немного другая - значения вперемешку, при несовпадении должны оставаться пустые строки. Если Вам не трудно, поделитесь опытом - как в этом случае можно организовать выгрузку? Заранее спасибо!
Изменено: _Igor_61 - 21.06.2018 22:33:12
 
swetik, в #5 не цитата - это полная копия сообщения. Вы вообще в курсе, что такое цитата?
Запомните - кнопка цитирования не для ответа! Вернитесь в своё сообщение и исправьте это безобразие.
 
Помощь скрыта до устранения замечания
Страницы: 1
Наверх