Страницы: 1
RSS
Построение списка уникальных значений с суммированием в ListBox
 
Подскажите, пожалуйста, как преобразовать код, чтобы одинаковые значения первого столбца нижнего листбокса "свернулись" а цифры в столбцах просуммировались. При этом формирование нижнего листбокса должно производиться не на основании данных листа, а на основании данных верхнего листбокса.
 
А зачем Вам два ЛистБокса? Загружайте в верхний ЛистБокс сразу уникальные значения с суммированием нужных столбцов
Согласие есть продукт при полном непротивлении сторон
 
- во втором листбоксе должна будет высчитываться новая средняя цена остатков;
- при использовании одного листбокса не корректно будут отображаться столбцы "дата" и "документ" (если делать их пустыми, то как фильтровать выбранный диапазон дат?);
- для меня получить уникальные значения в первый листбокс не легче, чем во второй)
 
Цитата
sasch78 написал: цифры в столбцах просуммировались
Цитата
sasch78 написал: должна будет высчитываться новая средняя цена
Это разные вещи.
Вы не стесняйтесь, опишите более подробно как, по какому событию и чем должен заполняться второй листбокс
Согласие есть продукт при полном непротивлении сторон
 
Покажите не в листбоксе, а на листе в таблице, какой результат вам нужен.
 
второй листбокс должен быть точно таким же как в примере (нужно лишь сжать одинаковые строки), а столбец "цена" (сумма / количество) я может и сам добавлю...
 
Цитата
sasch78 написал:
...а цифры в столбцах просуммировались
Какие столбцы суммировать?
 
sasch78, Вы в курсе, что ЧИСЛО и ЦИФРА - несколько разные определения?
 
Посмотрите файл. Код заполнения ЛистБоксов переписан полностью, Ваш закоментирован. Нули во втором ЛистБоксе из-за отрицательных значений в таблице
Изменено: Sanja - 24.03.2018 19:48:41
Согласие есть продукт при полном непротивлении сторон
 
И мой вариант.
 
Sanja, Юрий М огромное спасибо за предложенные варианты, оба решения работают и мне подходят, оба буду завтра на свежую голову разбирать для опыта; сходу могу только сказать, что код Sanja для моего понимания намного сложнее; единственное, что я не учел - это нули, нельзя ли как-нибудь избавиться от записей с нулевыми значениями во втором листбоксе?
 
Цитата
sasch78 написал: избавиться от записей с нулевыми значениями во втором листбоксе
Заменить отрицательные значения в исходной таблице на положительные.Меня смущает отрицательное кол-во, такое возможно в Вашей задаче?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
sasch78 написал:
нельзя ли как-нибудь избавиться от записей с нулевыми значениями во втором листбоксе?
Можно: добавьте простую проверку.
 
Без нулевых значений
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Юрий М написал:
добавьте простую проверку.
Нее - с проверкой муторно. Я бы переложил в другой массив )
 
Sanja, теперь все бесподобно! то, что я и хотел, спасибо! а отрицательные количество и сумма - это списание по активным счетам - специфика бух. учета, все супер))
 
Sanja, в связи с перепиской кода нарушился поиск по фильтрам комбобоксов;
"нулевые" строки во втором листбоксе не исчезли, а просто стали невидимы; не "проявятся" ли эти невидимые строки при экспорте данных из листбокса на лист?
 
Юрий М, ваш код работает, но когда переношу его в свой файл, почему-то ругается на "Uniq.Add", с чем это может быть связано?
 
Цитата
sasch78 написал: нарушился поиск по фильтрам комбобоксов
Ни о каких фильтрах ни в теме ни в стартовом сообщении не было сказано. Решено именно 'заполнение ЛистБокса уникальными значениями'.
Цитата
sasch78 написал: строки ... не исчезли, а просто стали невидимы
Это вообще о чем? Мой последний код НЕ вставляет во второй ЛистБокс значения у которых количество равно 0
Согласие есть продукт при полном непротивлении сторон
 
Ваши КомбоБоксы ничем не заполняются. Объясните их назначение
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Ваши КомбоБоксы ничем не заполняются
пример выдернут из большого файла, в котором комбобоксы ссылались на справочники и работали фильтрами (впрочем да, вопрос состоял не в комбобоксах, с этим я разберусь)

Цитата
Sanja написал:
Это вообще о чем? Мой последний код НЕ вставляет во второй ЛистБокс значения у которых количество равно 0
в листбоксе снизу присутствуют 6 невидимых пустых строк, которые подсвечиваются курсором; я просто хотел узнать, не повлияют ли они на переброску данных из этого листбокса в дальнейшем?
 
Убрал пустые строки из второго ЛистБокса. Добавил проверку на совпадение значений с КомбоБоксами (проверить не на чем, нет значений для КомбоБоксов). Внес несколько комментариев в код
Согласие есть продукт при полном непротивлении сторон
 
Sanja, все работает просто изумительно! огромное спасибо за терпение и проделанную работу; теперь мне остается только вникнуть в волшебные хитросплетения довольно не простого пока для моего понимания кода)
 
Цитата
sasch78 написал: остается только вникнуть
В помощь
Для отбора уникальных значений используется СЛОВАРЬ
В коде от Юрий М, для этих целей используется КОЛЛЕКЦИЯ
Согласие есть продукт при полном непротивлении сторон
 
Sanja, спасибо за наводку, на первый взгляд все сложно... но хоть представление буду иметь)
 
Цитата
sasch78 написал: на первый взгляд все сложно
Зато интересно :) . Успехов!
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх