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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2011, 13:12   #1
bonderlogin
 
Регистрация: 01.02.2011
Сообщений: 4
По умолчанию Необходимо найти строки с одинаковым значениями

Задача. Необходимо найти в столбце D строки с одинаковым значеним, а соответствующие им значения в столбце G просуммировать. Строки в столбце A и B оставить с наименьшим значением. C, E, F оставить без изменений.
Помогите пожалуйста, горит отчет!!!
Вложения
Тип файла: rar 400000.rar (28.5 Кб, 18 просмотров)
bonderlogin вне форума Ответить с цитированием
Старый 01.02.2011, 13:32   #2
GRS1988
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 18
По умолчанию

По-моему Столбец С вам надо сгруппировать
GRS1988 вне форума Ответить с цитированием
Старый 01.02.2011, 14:18   #3
bonderlogin
 
Регистрация: 01.02.2011
Сообщений: 4
По умолчанию

И что это даст??? Задача иная (см. начальный пост)
bonderlogin вне форума Ответить с цитированием
Старый 01.02.2011, 14:33   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Половина работы - получаем суммы по уникальным.
Сохраните на другой лист.
Теперь удалите строки с бОльшими номерами, подтяните суммы с помощью ВПР()
Код:
Option Explicit

Sub Otbor()
    Dim a(), oDict As Object, i As Long, temp As String
    
    a = Range("D1:G" & Range("D" & Rows.Count).End(xlUp).Row).Value

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

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

End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо найти ошибку, задача на языке С ПеПпИ Помощь студентам 8 14.11.2010 19:58
Турбо паскаль:программа находящая сумму ряда(необходимо найти ошибку в коде) Galchonok Помощь студентам 5 12.06.2010 15:10
слова с одинаковым началом и концом shelest Помощь студентам 2 28.02.2010 15:07
Необходимо найти! salat Общие вопросы по Java, Java SE, Kotlin 0 23.11.2009 06:34
В БД необходимо создать макрос, суть которого расчет итоговой строки по условию mex32 Microsoft Office Excel 31 01.04.2009 13:05