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

Вход

Регистрация

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

 

= Мир MS Excel/объединение диапазонов в один с суммированием по одному полю - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
объединение диапазонов в один с суммированием по одному полю
oxanathe Дата: Воскресенье, 27.04.2014, 16:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Помогите, пожалуйста. Есть однотипные таблицы данных идущие подряд на одном листе (повторяется каждые 6 столбцов), их надо собрать в один лист с суммированием по полю "Стоимость". Пример в приложении. Я привела только 3 таблицы, их будет гораздо больше.
Может есть варианты обойтись без макросов?
К сообщению приложен файл: 7573954.xlsx (10.6 Kb)
 
Ответить
СообщениеЗдравствуйте! Помогите, пожалуйста. Есть однотипные таблицы данных идущие подряд на одном листе (повторяется каждые 6 столбцов), их надо собрать в один лист с суммированием по полю "Стоимость". Пример в приложении. Я привела только 3 таблицы, их будет гораздо больше.
Может есть варианты обойтись без макросов?

Автор - oxanathe
Дата добавления - 27.04.2014 в 16:55
oxanathe Дата: Воскресенье, 27.04.2014, 17:05 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Да, поэтому сюда и написала.
Горят сроки, а сама не сильна в макросах.


Сообщение отредактировал oxanathe - Воскресенье, 27.04.2014, 17:07
 
Ответить
СообщениеДа, поэтому сюда и написала.
Горят сроки, а сама не сильна в макросах.

Автор - oxanathe
Дата добавления - 27.04.2014 в 17:05
Hugo Дата: Воскресенье, 27.04.2014, 17:12 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
[vba]
Код
Option Explicit

Sub tt()
     Dim a(), i&, ii&, t$, k, sh As Object

     a = Sheets("Данные").UsedRange.Value

     Application.ScreenUpdating = False
     With CreateObject("scripting.dictionary"): .comparemode = 1
         For i = 2 To UBound(a)
             For ii = 1 To UBound(a, 2) Step 6
                 If a(i, ii + 5) > 0 Then
                     t = a(i, ii) & "|" & a(i, ii + 1) & "|" & a(i, ii + 2) & "|" & a(i, ii + 3) & "|" & a(i, ii + 4)
                     .Item(t) = .Item(t) + a(i, ii + 5)
                 End If
             Next
         Next

         Set sh = Workbooks.Add(1).Sheets(1)
         i = 1
         sh.Cells(i, 1).Resize(, 6) = Split("КОД1|КОД|Категория|Год-Месяц|Статья|Стоимость", "|")
         For Each k In .keys
             i = i + 1
             sh.Cells(i, 1).Resize(, 5) = Split(k, "|")
             sh.Cells(i, 6) = .Item(k)
         Next
     End With
     Application.ScreenUpdating = True
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение[vba]
Код
Option Explicit

Sub tt()
     Dim a(), i&, ii&, t$, k, sh As Object

     a = Sheets("Данные").UsedRange.Value

     Application.ScreenUpdating = False
     With CreateObject("scripting.dictionary"): .comparemode = 1
         For i = 2 To UBound(a)
             For ii = 1 To UBound(a, 2) Step 6
                 If a(i, ii + 5) > 0 Then
                     t = a(i, ii) & "|" & a(i, ii + 1) & "|" & a(i, ii + 2) & "|" & a(i, ii + 3) & "|" & a(i, ii + 4)
                     .Item(t) = .Item(t) + a(i, ii + 5)
                 End If
             Next
         Next

         Set sh = Workbooks.Add(1).Sheets(1)
         i = 1
         sh.Cells(i, 1).Resize(, 6) = Split("КОД1|КОД|Категория|Год-Месяц|Статья|Стоимость", "|")
         For Each k In .keys
             i = i + 1
             sh.Cells(i, 1).Resize(, 5) = Split(k, "|")
             sh.Cells(i, 6) = .Item(k)
         Next
     End With
     Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Hugo
Дата добавления - 27.04.2014 в 17:12
oxanathe Дата: Воскресенье, 27.04.2014, 17:26 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо большое, написала Вам в личке
 
Ответить
СообщениеСпасибо большое, написала Вам в личке

Автор - oxanathe
Дата добавления - 27.04.2014 в 17:26
  • Страница 1 из 1
  • 1
Поиск:

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