Страницы: 1
RSS
Макрос, суммирующий в одинаковых накладных вес и количество упаковок
 
Добрый день! Обращаюсь за помощью. имеется лист на котором в 4 столбце написан объем, в 5 количество упаковок, в 7 номера накладных.
Прошу поделиться макросом, который бы в столбик №11 прописал номера накладных без дублей, в столбик 12 сумму объема по ним, а в 13 сумму упаковок. Количество строк может меняться. Сам тюфяк. Спасибо.
 
В картинке ни формулы, ни макросы не работают. Об этом в правилах форума написано.
 
не подумал
 
OlbiPepoli, здравствуйте!
Цитата
OlbiPepoli: Прошу поделиться макросом
зачем макрос, если можно штатными формулами решить?…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
я сделал без макросов!
Скрытый текст
Изменено: venom51 - 21.11.2019 17:44:12
 
нужен макрос для того что бы его добавить в цепочку, так как это лишь одна из задач на пути к цели
 
OlbiPepoli, по вашему описанию и этот результат подойдёт — так какой нужен?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Информация о том встречаются ли дубли или нет не нужна. Как и пробелы в строках дублей.  Если номер накладной дублируется достаточно будет его однократного отображения с суммой по объему и упаковки по нему.
 
OlbiPepoli, свои попытки покажете или хотите макрос с нуля (в раздел Работа)?
Если у вас история "я ничего не умею", то гуглите про словари и отбор уникальных значений
Изменено: Jack Famous - 21.11.2019 18:19:32
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
достаточно будет его однократного отображения с суммой по объему и упаковки по нему
Код
Sub test()
Dim dicObj As Object
Dim dicObj_1 As Object
Dim i&
Set dicObj = CreateObject("scripting.dictionary")
Set dicObj_1 = CreateObject("scripting.dictionary")
  For i = 1 To Cells(Rows.Count, "G").End(xlUp).Row
    dicObj.Item(CStr(Cells(i, "G"))) = dicObj.Item(CStr(Cells(i, "G"))) + Cells(i, "D")       'сумма в dicObj.items
    dicObj_1.Item(CStr(Cells(i, "G"))) = dicObj_1.Item(CStr(Cells(i, "G"))) + Cells(i, "E")   'сумма в dicObj_1.items
  Next i
    Range("K1").Resize(dicObj.Count) = Application.Transpose(dicObj.keys)    'уникальные из столбца G
    Range("L1").Resize(dicObj.Count) = Application.Transpose(dicObj.Items)   'сумма по столбцу D по уникальным
    Range("M1").Resize(dicObj.Count) = Application.Transpose(dicObj_1.Items) 'сумма по столбцу E по уникальным
End Sub
 
OlbiPepoli, раз сам Kuzmich решил помочь, то вот вам и немного другой способ  :)
Просто меня беспокоит, что вы хотите интегрировать решение в свой код, но при этом нет даже попыток что-то сделать…
Код
Изменено: Jack Famous - 22.11.2019 10:14:26
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Kuzmich, спасибо! Как уйти от нулей внизу результата?
 
Цитата
OlbiPepoli: Как уйти от нулей внизу результата?
последняя строка с данными рассчитывается по столбцу с ключами (у меня тоже). Скорее всего, у вас в строке 32 есть данные. Удалите её целиком
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, для меня, конечно, как для человека далёкого от технической части вопроса и имеющего дело с малыми объемами данных разница отсутствует) Но я очень благодарен за уделённое моей проблеме Вами время. Нули внизу и у Вас есть)
 
Цитата
OlbiPepoli: разница отсутствует
я и не говорил, что метод быстрее - он просто ДРУГОЙ
Цитата
OlbiPepoli: Нули внизу и у Вас есть
Цитата
Jack Famous: (у меня тоже)
и я вам сказал, что делать…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
OlbiPepoli,
Цитата
Как уйти от нулей внизу результата?
Удалите строки  (32-40) , там остались какие-то невидимые данные.
И запустите макрос
 
Странно, но не помогает. в любом случае огромное спасибо! оба решения хороши!
 
Цитата
Странно, но не помогает
А вы очистили предварительно колонки K:M перед запуском макроса?
 
Цитата
Kuzmich написал:
колонки K:M перед запуском макроса
эти колонки не затронуты при добавлении информации в лист exel и используются только для отображения результатов макроса
 
OlbiPepoli,
Вы как раз и спрашивали о нулях внизу результата.
Удалите предыдущие результаты и запустите макрос
Страницы: 1
Наверх