Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание сводной с суммированием столбцов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание сводной с суммированием столбцов (Макросы/Sub)
Создание сводной с суммированием столбцов
avzan79 Дата: Вторник, 03.06.2014, 17:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ДОбрый день!
Мозг кипит %)
Помогите решить задачу:
нужно сделать сводную таблицу при этом суммировав три столбца
суммирование должно быть произведенно при создание сводной

пример выкладываю. заранее спасибо

p.s. создать сводную не проблема. не могу решить как суммировать столбцы
К сообщению приложен файл: 6666.xls (34.5 Kb)


Сообщение отредактировал avzan79 - Вторник, 03.06.2014, 18:00
 
Ответить
СообщениеДОбрый день!
Мозг кипит %)
Помогите решить задачу:
нужно сделать сводную таблицу при этом суммировав три столбца
суммирование должно быть произведенно при создание сводной

пример выкладываю. заранее спасибо

p.s. создать сводную не проблема. не могу решить как суммировать столбцы

Автор - avzan79
Дата добавления - 03.06.2014 в 17:58
Pelena Дата: Вторник, 03.06.2014, 18:06 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Вариант с вычисляемым полем
К сообщению приложен файл: 0559955.xls (41.0 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВариант с вычисляемым полем

Автор - Pelena
Дата добавления - 03.06.2014 в 18:06
avzan79 Дата: Среда, 04.06.2014, 09:02 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, спасибо
Но можно было бы реализовать это с помощью макроса
Количество данных огромное и постоянно растет
Нужно оперативно делать сводную
 
Ответить
СообщениеPelena, спасибо
Но можно было бы реализовать это с помощью макроса
Количество данных огромное и постоянно растет
Нужно оперативно делать сводную

Автор - avzan79
Дата добавления - 04.06.2014 в 09:02
Rioran Дата: Среда, 04.06.2014, 10:31 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
avzan79, здравствуйте.

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

[vba]
Код
Sub Column_Summ_Manager()

'Macros by Roman "Rioran" Voronov
'04.06.2014 for www.excelworld.ru

Application.ScreenUpdating = False 'Отменяем эпилептический припадок для экрана
With ThisWorkbook.Worksheets("Job") 'Работаем только с конкретным листом этой книги

Dim X As Long 'Для перебора строк начальной таблицы, счётчик
Dim Y As Long 'Для перебора строк сводной таблицы, счётчик
Dim W As Long 'Для поиска товара в сводной таблице, счётчик

X = 2 'Начальная позиция в первой таблице
Y = 27 'Начальная позиция во второй таблице

Do While .Cells(X, 1).Value <> "" 'Перебираем строки начальной таблицы
     Do While .Cells(Y, 1).Value <> "" 'Ищем фирму в сводной таблице
         If .Cells(X, 1).Value = .Cells(Y, 1).Value Then 'Если совпадают названия фирмы...
             For W = 1 To 4 'Перебираем товар в сводной, подбираем
                 If .Cells(X, 2).Value = .Cells(Y + W - 1, 2).Value Then 'Если товар совпал, то суммируем всё и уже имеющиеся значения
                     .Cells(Y + W - 1, 3).Value = .Cells(Y + W - 1, 3).Value + .Cells(X, 3).Value + .Cells(X, 4).Value + .Cells(X, 5).Value
                     .Cells(Y + W - 1, 4).Value = .Cells(Y + W - 1, 4).Value + .Cells(X, 6).Value
                     .Cells(Y + W - 1, 5).Value = .Cells(Y + W - 1, 5).Value + .Cells(X, 7).Value
                     Exit Do 'и переходим к следующей стоке начальной таблицы
                 End If
             Next W
         End If
         Y = Y + 5 'т.к. название фирмы через каждые 5 строк. Шаг.
     Loop
     X = X + 1 'Счётчик для строк начальной таблицы
     Y = 27 'Обнуляем счётчик для сводной таблицы
Loop

End With
Application.ScreenUpdating = True

End Sub
[/vba]
Что скажете?

*******
Поправил макрос - теперь затраты на перевозку и погрузку тоже суммируются при повторении фирмы+товара в начальной таблице.
К сообщению приложен файл: Three_to_One.xlsm (21.9 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Среда, 04.06.2014, 11:04
 
Ответить
Сообщениеavzan79, здравствуйте.

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

[vba]
Код
Sub Column_Summ_Manager()

'Macros by Roman "Rioran" Voronov
'04.06.2014 for www.excelworld.ru

Application.ScreenUpdating = False 'Отменяем эпилептический припадок для экрана
With ThisWorkbook.Worksheets("Job") 'Работаем только с конкретным листом этой книги

Dim X As Long 'Для перебора строк начальной таблицы, счётчик
Dim Y As Long 'Для перебора строк сводной таблицы, счётчик
Dim W As Long 'Для поиска товара в сводной таблице, счётчик

X = 2 'Начальная позиция в первой таблице
Y = 27 'Начальная позиция во второй таблице

Do While .Cells(X, 1).Value <> "" 'Перебираем строки начальной таблицы
     Do While .Cells(Y, 1).Value <> "" 'Ищем фирму в сводной таблице
         If .Cells(X, 1).Value = .Cells(Y, 1).Value Then 'Если совпадают названия фирмы...
             For W = 1 To 4 'Перебираем товар в сводной, подбираем
                 If .Cells(X, 2).Value = .Cells(Y + W - 1, 2).Value Then 'Если товар совпал, то суммируем всё и уже имеющиеся значения
                     .Cells(Y + W - 1, 3).Value = .Cells(Y + W - 1, 3).Value + .Cells(X, 3).Value + .Cells(X, 4).Value + .Cells(X, 5).Value
                     .Cells(Y + W - 1, 4).Value = .Cells(Y + W - 1, 4).Value + .Cells(X, 6).Value
                     .Cells(Y + W - 1, 5).Value = .Cells(Y + W - 1, 5).Value + .Cells(X, 7).Value
                     Exit Do 'и переходим к следующей стоке начальной таблицы
                 End If
             Next W
         End If
         Y = Y + 5 'т.к. название фирмы через каждые 5 строк. Шаг.
     Loop
     X = X + 1 'Счётчик для строк начальной таблицы
     Y = 27 'Обнуляем счётчик для сводной таблицы
Loop

End With
Application.ScreenUpdating = True

End Sub
[/vba]
Что скажете?

*******
Поправил макрос - теперь затраты на перевозку и погрузку тоже суммируются при повторении фирмы+товара в начальной таблице.

Автор - Rioran
Дата добавления - 04.06.2014 в 10:31
avzan79 Дата: Среда, 04.06.2014, 11:01 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
а если ассортимент товаров будет меняться?
у одной фирмы 5, у другой 10 и т.п.
я про шаг

(это вырванный кусок таблицы. она оргомная)


Сообщение отредактировал avzan79 - Среда, 04.06.2014, 11:02
 
Ответить
Сообщениеа если ассортимент товаров будет меняться?
у одной фирмы 5, у другой 10 и т.п.
я про шаг

(это вырванный кусок таблицы. она оргомная)

Автор - avzan79
Дата добавления - 04.06.2014 в 11:01
Rioran Дата: Среда, 04.06.2014, 11:06 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
avzan79, в этом случае:

- либо все таблицы должны иметь стандартный шаг
- либо можно упростить макрос на пару циклов, прописав в сводной таблице название фирмы на КАЖДОЙ строке.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеavzan79, в этом случае:

- либо все таблицы должны иметь стандартный шаг
- либо можно упростить макрос на пару циклов, прописав в сводной таблице название фирмы на КАЖДОЙ строке.

Автор - Rioran
Дата добавления - 04.06.2014 в 11:06
Rioran Дата: Среда, 04.06.2014, 11:07 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
avzan79, и совсем уж будет вкусно, если макрос будет собирать таблицу с нуля, включая только существующие названия фирм и товаров.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеavzan79, и совсем уж будет вкусно, если макрос будет собирать таблицу с нуля, включая только существующие названия фирм и товаров.

Автор - Rioran
Дата добавления - 04.06.2014 в 11:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание сводной с суммированием столбцов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!