Страницы: 1
RSS
Выборка данных из одной таблицы в другую по условию
 
Здравствуйте. Я на форуме недавно, и опытным пользователем себя назвать не могу. Поэтому прошу помощи у форумчан. Задача такая: надо сделать выборку данных из таблицы одного файла в похожую таблицу другого файла по определенным условиям, да ещё что бы данные с одной пометкой переносились в таблицу № 1, а данные с другой пометкой в таблицу № 2, такую же и т.д. Пометок может быть много.  
 
То есть надо выбрать данные с одной таблицы по каким то условиям и рассортировать их в одну или несколько таблиц по пометкам.
 
Я бы как всегда на массивах делал, тем более что там ещё и колонки нужно местами менять.  
Взял исходные в массив, определил с помощью словаря количество и какие уникальные склады (если нет заранее точных данных).  
Далее - если данные уже известны заранее, то в коде прописал количество создаваемых пустых массивов, если не известны, то крутил в цикле один массив по данным из словаря.  
Заполнял его (или сразу все) из исходного по критерию "склад", далее искал похожий лист (или добавлял новый с шапкой, если не нашёл), там определял последнюю строку и выгружал.  
Вроде так.  
Есть проблема с суммой внизу - можно конечно и кодом определять и ставить формулу, но проще сразу забить её вверху на весь диапазон с запасом.  
Но если продукции мало и она сумму точно не затрёт - можно и так оставить.  
Не понятна ещё фраза "продукции № 1/2" - что, если продукция будет некошерная, её не брать?  
Тогда словарь не нужен, а условия цеха/продукция сразу забиваем в код, и одним проходом по массиву данных заполняем (в примере их 3) все массивы.  
Выгружаем на конкретные листы. определив последнюю строку.  
 
Но могут быть другие варианты, на SQL/ADO например. или просто Copy/Paste...
 
Хорошо, раз других вариантов нет...  
Сделал по упрощённой схеме - всё заранее известно, формула не затирается, ибо данных мало.
 
По алгоритму работы с словарём -    
если использовать словарь, то массивы помещаем в Item словаря.  
При появлении нового уникального номера склада помещаем его и к нему копию ранее созданного одного пустого массива в словарь.  
Предварительно заполнив первую строку массива данными.  
При повторе - дополняем массив данными.  
Текущий индекс массива можно хранить в этом же массиве, например сделва его на одну строку/столбец больше, чем нужно для данных.  
В конце перебираем все keys словаря и выгружаем их массивы по листам.  
Так за один проход по исходным данным сразу получим все нужные данные по местам, не зависимо от количества складов.
 
Вы бы противоречия в своём примере привели. Или на складе № 12 хранится только Продукция № 2. Как и на других складах, только 1. Если действительно так, то смотрите файл. Если нет, то показал возможную ошибку при таком решении на 12 складе.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
Страницы: 1
Читают тему
Наверх