powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как объединить информацию об одинаковых позициях из трех файлов excel в один
25 сообщений из 61, страница 1 из 3
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37448247
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 3 файли excel:
1. расчет (служит для расчета стоимости изделия) он же "калькулятор"
2. прайс лист
3. наличие на складе
Все 3 файлика существуют отдельно и каждый день обновляются.

Проблема следующая:
Приходит клиент, и я сначала открываю файл-калькулятор, заполяню заказ, затем открываю свежий прайс, смотрю цену и вставляю ее в калькулятор, все считается. Теперь клиенту хочется узнать наличие. Открываю 3-й файлик, смотрю наличие.
Если все проходит с первого раза, то это хорошо, но вот если нет, то начиниется жуткая каша. Считаешь другой материал, опять смотришь наличие. И так пока не наткнешься на тот, который все таки есть на складе. Или от обратного, смотришь какие есть в наличии, потом копаешь прайс и считаешь цену. Жутко медленно получается и клиент и я после первых 15-ти минут поиска начиннаем жутко нервничать (я даже больше).

Хотелось бы сбить все в кучку. И получить что-то типа:
Открываю калькулятор, заполняю заказ. На втором листе выбираю материал по любому принципу, который понравится, по наличию или по артукулу или по наименованию. Сверху с помошью промежуточных итогов (или другим способом) вытаскиваю цену и другую интересующую информацию. Публикую ее на первом листе с расчетами. В результате вся информация на первом листе есть, меняя материалы на втором листе я автоматом пересчитываю изделия и сразу смотрю наличие. Прям мечта.

Вот собственно вопрос: Как сбить информацию из файликов Прайс и Склад во вторую страницу файла Расчет?
Хотелось бы просто при получении нового прайса заменить им старый и все будет работать уже по новым ценам. Так же с файлом склада. Удалил старый, копировал новый. Запустил "расчет.xls" и все рабоатет с новыми данными.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37448944
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумно - сменить инструмент. На более для такой задачи предназначенный. Хоть тот же Аксесс.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37449069
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, а если взглянуть не с точки зрения разработчика, а обычного офисного манагера?
Ведь прайс может быть сформирован кем-то где-то, наличие на складе - еще кем-то выложено...

Нам предлагается на основе уже имеющихся источников данных получить выборку (код, наименование, цена, наличие) и на её основе сформировать заказ. В принципе, стандартный подход при заказе в дилерских прайсах

Акцесс тоже для такой достаточно простой операции привлекать совершенно необязательно. Нечто похожее у меня есть давно разработанное, но в приложении к данной теме - очень уж излишнее.

kefirko, если вы удосужитесь выложить кусочки реальных образцов файлов ПРАЙСа и СКЛАДа, то можно показать, как это легко, просто и "красиво выглядяще" можно сделать и в Экзеле...
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37449087
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Прайс - price list_June2011New.xls
Интересны столбцы:
A - артикул
B - наименование
E - цена

Склад - Stock report 20.09.2011 + Import.xls
Интересны столбцы:
B - наименование
D - артикул
H - доступный материал на складе

Что хочется получить - Сбитый в кучку файл.xls
A - Артикул
B - Наименование
C - Цена из файлика price list_June2011New.xls
D - Наличие из файлика Stock report 20.09.2011 + Import.xls

Я так понимаю, что при каждом запуске он должен обновлять данные из price list_June2011New.xls и Stock report 20.09.2011 + Import.xls.
А при необходимости я заменяю их новыми файлами, не меняя названий, и все работает дальше.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37449097
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну примерно так...
Но мне-то интересен именно внутренний вид вашего "прайса" и "наличия на складе", а то мало ли как там сгруппировано, и таблички тоже начинаются ведь не с первой строки... Плюс ко всему, эти файлы явно в общем доступе, поэтому надо определяться, как запрашивать из них данные, либо работать с их копиями.
Я просто хочу, как говорится, "сделать за вас всю работу". В качестве небольшой практики по поддержанию собственного уровня , поэтому и прошу у вас реальные образцы ваших файлов. Можно и на мыло.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37449098
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да я прикрутить не могу файлики. ошибка вылетает
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37449102
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отправил на мыло
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37450570
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел функцию ВПР, почти то, что надо, но все равно не то. Если надо будет идти от обратного, т.е. сначала посмотреть наличие, а потом выбирать материал, то никак :(
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37450591
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И она не хочет работать с русскими символами.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37450621
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все работает просто руки кривые.
Вот что получилось.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37451131
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kefirko,

Можно кодом делать примерно так -
при запуске
1. читаем Прайс, загоняем в словарь артикулы и в массив всё остальное.
2. читаем Склад - по словарю по артикулам добиваем в массив данные по наличию.
Теперь из этого массива можно тянуть что угодно, ориентируясь по артикулу в словаре

Если этот словарь и массив сделать публичными - то их можно лишь периодически обновлять (обновить при открытии этого файла-инструмента, затем по нажатию кнопки по требованию).

Будет работать (без обновления) мнгновенно, даже если сотни тысяч позиций.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37451454
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как быть, если артикулу из прайса, соответствует 2 значения из склада?
Что-то типа:
Арт Наименование Кол-во Примечание
в12 вещь12 4 для клиентов
в12 вещь12 5 резерв

Как вятянуть инфу только из строчки, где для клиентов. Ну т.е. он вытянул сначала по артукулам все строки, а потом из этого оставил только то, что для клиентов.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37451457
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

Не ну схема то и так более-менее ясна. А как быть с раелизацией? Какими функциями и как это делать?
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37451496
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kefirko,

если "резерв" не нужен, то его сразу и не брать.
Или его писать в массив в другой столбец.
Кстати, если строк с наличием много - то наличие можно сразу в массиве суммировать. Если есть убытие - то и отнимать.

А какие функции - изучайте примеры с Dictionary и массивами.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37451509
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот например - задача другая, но похожая, и весь механизм тут есть:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub tt()
Dim x, y(), i&, j&, k&, u&, s$
x = Range("A1:C" & Cells(Rows.Count,  1 ).End(xlUp).Row).Value
ReDim y( 1  To UBound(x),  1  To  3 )

With CreateObject("Scripting.Dictionary")
    .CompareMode =  1 
    For i =  1  To UBound(x,  1 )
        s = x(i,  1 ) & x(i,  2 )
        If Not .Exists(s) Then
            j = j +  1 : .Item(s) = j
            For k =  1  To  3 : y(j, k) = x(i, k): Next k
        Else
            u = .Item(s): y(u,  3 ) = y(u,  3 ) + x(i,  3 )
        End If
    Next
End With
With [e1:g1].Resize(j)
    .ClearContents: .Value = y
End With
End Sub
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454252
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно для тупых объяснить что это и с чем едят?
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454347
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kefirko, раз схема ясна, то я дал "функции" и пример реализации.
Есть словарь и массив. Делаете их публичными.
В словарь собираете артикулы и в Item словаря кладёте индекс каждого артикула в массиве, а в массив всё остальное по артикулу, что только нужно.
Как я выше писал -
при запуске
1. читаем Прайс, загоняем в словарь артикулы и в массив всё остальное.
2. читаем Склад - по словарю по артикулам добиваем в массив данные по наличию.

Всё, теперь пока файл открыт - по артикулу мнгновенно можно получить всё из массива. И те других два файла не нужны - их можно редактировать, дополнять, вообще заменить.
Когда данные обновились - ещё раз создать словарь и массив, и можно работать дальше.
Вы ведь так хотели? -
авторЯ так понимаю, что при каждом запуске он должен обновлять данные из price list_June2011New.xls и Stock report 20.09.2011 + Import.xls.
А при необходимости я заменяю их новыми файлами, не меняя названий, и все работает дальше.
Только данные будут не в файле, а в памяти.
А Вам в файле и не нужно - нужно ведь заполнять заказы.
Для выбора можно форму прикрутить - это правда уже другая большая часть работы.
А можно просто выгрузить массив из памяти на лист - и работать как привычно с листом.
Тогда и "публичность" не нужна - запустили код, данные обновились (можно файл сохранить) - всё, работаем с листом.
Плюсы -
1. те два файлы нужны на секунду
2. формулы не напрягают, не тормозят работу.
3. работает одинаково шустро при любом разумном количестве данных.
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454398
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вся беда в том, что я далек от всех этих тонкостей.
Фраза: "Сделаете их публичными". Вводит меня в ступор.
Ладно еще использование какой-н функции типа ВПР(), открыл мануал/google, почитал, использовал.
Я excel воспринимаю как таблицу с кучей всяких "возможностей".
Макрос освоил только один за всю жизнь.
Такие вещи мне проще воспринимать на примере. Смысл всех фраз я примерно понимаю, но как эти фразы материализовать...
Дайте хоть самый простой пример, чтобы посмотреть как "артикулу мгновенно можно получить всё из массива".
Я с моими познаниями смог сделать только это...
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454446
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kefirko, примеры - это хорошо.
Но вот что из примеров нужно?
Данные брать из одного листа Novosib? Или собрать суммы с двух листов?
И кстати там есть повторы артикулов: например в Новосибирске только 235 уникальных артикулов - так общее количество ВПР() не покажет. И эти IM01...
Сделать как в Сводка, но без формул?
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454490
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И кстати, гугль не одним ВПР() полон: публичная переменная
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454585
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko, вы не думайте, я про вас не забыл
Приложение я вам сделаю, не беспокойтесь.
Вот на его примере и можно будет разбираться, что и как лучше реализовать.
Только вот теперь впадаю в задумчивость - как бы объяснение структуры данных и принципа взаимодействия не вылилось потом в стостраничный топик...
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454621
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА как быть, если артикулу из прайса, соответствует 2 значения из склада?
Что-то типа:
Арт Наименование Кол-во Примечание
в12 вещь12 4 для клиентов
в12 вещь12 5 резерв

Как вятянуть инфу только из строчки, где для клиентов.
А быть надо так, что бы правильно формулировать полностью задание и показывать реальные файлы!!
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454622
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В своих наработках замени формулы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
=ВПР(A4;Прайс!B:C; 2 ; 0 )
на
=ЕСЛИ(ЕНД(ВПР(A24;Прайс!B:C; 2 ; 0 ));"";ВПР(A24;Прайс!B:C; 2 ; 0 ))


=ВПР(A37;Склад!B:C; 2 ; 0 )
на
=ЕСЛИ(ЕНД(ВПР(A23;Склад!B:C; 2 ; 0 ));"";ВПР(A23;Склад!B:C; 2 ; 0 ))
почище будет
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454623
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е пока я так начинаю думать - что то, что с IM01 - это резерв и это учитывать не нужно.
Т.е. нужно делать не так, как в Сводка...
Т.е. пока ничего не ясно...
Т.е. пока я делать ничего не буду...
Тем более, что есть чем заняться... :)
...
Рейтинг: 0 / 0
Как объединить информацию об одинаковых позициях из трех файлов excel в один
    #37454631
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё было бы хорошо если бы не было так грустно: Не все наименования имеющиеся на складе есть в прайсе
Сделал выборку по складу.
Стань на свободную ячейку в колонке А. Нажми на стрелку сбоку и выбери из списка.
Остаток на складе покажется. Цена - если имеется в прайсе!!
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как объединить информацию об одинаковых позициях из трех файлов excel в один
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]