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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 17:26   #1
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию Добавление строки и суммирование одинаковых данных в ней, реально ли реализовать через макрос?

Добавление строки и суммирование одинаковых данных в ней, реально ли реализовать через макрос? Прикрепляю пример.
Вложения
Тип файла: rar Пример.rar (9.8 Кб, 15 просмотров)
Just_07 вне форума Ответить с цитированием
Старый 02.06.2012, 09:13   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Sub www()
    Dim i%, n&, c&, a, k&
    Worksheets("Лист2").UsedRange.ClearContents
    a = Worksheets(1).Range("d3:j12")
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(a)
            If a(i, 6) <> "" Then
                If .exists(a(i, 6)) Then
                    n = .Item((a(i, 6)))
                    For c = 1 To UBound(a, 2)
                        If IsNumeric(a(i, c)) Then a(n, c) = a(n, c) + a(i, c)
                    Next
                Else
                    k = k + 1: .Item((a(i, 6))) = k
                    For c = 1 To UBound(a, 2)
                        a(k, c) = a(i, c)
                    Next
                End If
            End If
        Next
    End With
    Worksheets("Лист2").[a3].Resize(k, 7) = a: Worksheets("Лист2").Activate
End Sub
Вложения
Тип файла: rar Пример.rar (19.0 Кб, 16 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 02.06.2012, 14:16   #3
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

Спасибо что откликнулись, но это не совсем то что я хотел. Должно быть как в примере ниже т.е. сравнивание по I столбцу и по J столбцу, если I в предыдущей строке равно I в сравниваемой, а также возможно в строке ниже-последующей, то вставлять строку под последним одинаковым I и суммировать значения только из D E F G, при этом должно выполняться условие что и данные в столбце J равны между собой. Т.е. если в столбце I между собой равны 3 строки, а в столбце J строки которые соответствуют I между собой только 2 строки, суммируем только 2 строки вставляя строку под одинаковыми J. Прикрепляю пример еще раз смотрите, может этот более понятен будет.

В примере заменил числа которые будут разными на "1" так лучше виден результат который нужно получить. Обязательное условие равенство I и I(последующая строка), а соответствующие им J и J(последующая строка) НЕ между собой, а в своих столбцах.
Заранее спасибо всем кто помогает или пытается помочь.
Вложения
Тип файла: rar Пример_2.rar (9.7 Кб, 16 просмотров)
Just_07 вне форума Ответить с цитированием
Старый 02.06.2012, 14:54   #4
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

Так называемый поиск и суммирование по двум критериям с добавление строки.
Just_07 вне форума Ответить с цитированием
Старый 03.06.2012, 04:11   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А смекалку включить? Совсем же не сложно, хоть по десяти полям сравнивай:
Код:
Sub www()
    Dim i%, n&, c&, a, k&
    Worksheets("Лист2").UsedRange.ClearContents
    a = Worksheets(1).Range("d3:j12")
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(a)
            If a(i, 6) <> "" Then
                If .exists(a(i, 6) & a(i, 7)) Then
                    n = .Item(a(i, 6) & a(i, 7))
                    For c = 1 To 4
                        If IsNumeric(a(i, c)) Then a(n, c) = a(n, c) + a(i, c)
                    Next
                Else
                    k = k + 1: .Item(a(i, 6) & a(i, 7)) = k
                    For c = 1 To UBound(a, 2)
                        a(k, c) = a(i, c)
                    Next
                End If
            End If
        Next
    End With
    Worksheets("Лист2").[a3].Resize(k, 7) = a: Worksheets("Лист2").Activate
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 03.06.2012, 11:39   #6
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

О! Вот теперь работает! Огромное спасибо, но оно вставляет полученный резльтат на отдельный лист. А так что бы строку добавляло и помечало красным в массив который анализируется нереально?
Just_07 вне форума Ответить с цитированием
Старый 03.06.2012, 11:58   #7
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

Ну или на второй лист переносило, сравневыемые данные а суммы помечало красным и вставляло под каждыми не уинкальными или просто помечало красным если значения уникальны, как в "Пример_2" ниже.
Just_07 вне форума Ответить с цитированием
Старый 04.06.2012, 18:47   #8
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

Народ помогите! Нужно срочно.
Just_07 вне форума Ответить с цитированием
Старый 04.06.2012, 19:49   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

"Промежуточные итоги":
Вложения
Тип файла: rar Пример_2'.rar (12.0 Кб, 18 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 05.06.2012, 00:00   #10
Just_07
 
Регистрация: 01.06.2012
Сообщений: 7
По умолчанию

Ух! И даже без макроса, отлично, век живи, век учись!!!! Огромное вам спасибо! А также не меньшее спасибо kuklp за помошь!
Just_07 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос добавление строки, копирование данных с условием MaxxVer Microsoft Office Excel 15 22.08.2017 12:24
Добавление данных через форму Полотенчик Microsoft Office Access 1 23.04.2012 10:44
Добавление строки и распространение в ней соответствующих формул roborrr Microsoft Office Excel 3 26.05.2011 13:25
Суммирование из одинаковых ячеек maksvas Microsoft Office Excel 30 17.05.2011 18:03
Суммирование одинаковых элиментов. Классфикация по значению. PashaNastya Microsoft Office Excel 10 27.03.2010 15:00