Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2011, 17:59   #1
katlis
Пользователь
 
Регистрация: 02.08.2007
Сообщений: 14
По умолчанию Как сделать чтоб выводило таблицу по кодам товаров с суммой проданного…

Как сделать чтоб выводило таблицу по кодам товаров с суммой проданного… т.е. имеется таблица

№магазина Код товара Количество
магазин2 1002.0008 1
магазин1 1002.0008 15
магазин2 1002.0022 1
магазин1 1002.0022 10

Нужно чтоб результатом было

Код товара Количество
1002.0008 16
1002.0022 11
katlis вне форума Ответить с цитированием
Старый 24.03.2011, 18:04   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

сводная таблица выведет
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.03.2011, 18:09   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вот, можно подпилить под Ваш пример:

Код:
Sub Otbor()
    Dim a(), oDict As Object, i As Long, temp As String
    
    a = Range("a1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value

    Set oDict = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(a)
        temp = UCase(Trim(a(i, 1)))
        If Not oDict.Exists(temp) Then
            oDict.Add temp, CStr(a(i, 2))
        Else
            oDict.Item(temp) = CStr(--oDict.Item(temp) + a(i, 2))
        End If
    Next

    With ThisWorkbook.Worksheets(1)
        .Range("D1").Resize(oDict.Count) = Application.Transpose(oDict.keys)
        .Range("E1").Resize(oDict.Count) = Application.Transpose(oDict.items)
    End With

End Sub
Хотя вероятно можно с кодом ничего и не делать - просто сперва удалить столбец А
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.03.2011, 18:14   #4
katlis
Пользователь
 
Регистрация: 02.08.2007
Сообщений: 14
По умолчанию

спасибо разобралась!!!
katlis вне форума Ответить с цитированием
Старый 24.03.2011, 18:21   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Быстро разобрались
Кстати, этот код можно брать за основу для других похожих задач - можно например не суммировать, а считать количество повторов...
У меня штук 6 разных версий в загашнике - основное время потерял, пока нашёл пример именно на эту задачу среди других похожих.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать в html чтоб файл не качался SQeeZe HTML и CSS 2 15.09.2010 18:58
Как сделать чтоб listbox показывал нумерацию? blackstersl Общие вопросы Delphi 7 01.02.2009 14:28
Как сделать, чтоб в ячейке ВЫБИРАЛОСЬ? kristinafadeewa Microsoft Office Excel 12 27.10.2008 06:05
как сделать чтоб экселев. файл висел открытым на рабочем столе как афиша на заборе? Мара Помощь студентам 6 24.07.2008 13:29
Как сделать чтоб картинки менялись? Kaktys v tymane Помощь студентам 1 09.05.2008 00:53