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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 15:32   #1
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию Поиск совпадения и сложение

Доброе время суток!
задача такая: нужно найти повторяющиесяя значения в столбце H и если значения находятся(например 110), то нужно оставить только одно значение(110), а значения в столбце J сложить.

тоесть первое значение 110, которое находится на 13 строке - остаётся, а в J13 записывается значение 201,5

есть макрос на поиск совпадений, но переделать его мозгов не хватило. Спасибо!
Вложения
Тип файла: zip Копия Sovpad.zip (10.3 Кб, 17 просмотров)
Серёга0629 вне форума Ответить с цитированием
Старый 26.09.2011, 15:55   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В теме http://www.planetaexcel.ru/forum.php?thread_id=26105 есть файл http://www.planetaexcel.ru/docs/foru...ost_236481.zip
Им получаем 110 201.5
Ну и если бы были другие пары - сразу и по ним тоже.

Принцип и алгоритм работы другой - не ищет совпадения, а суммирует по уникальным. Принцип другой, а результат одинаковый
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 26.09.2011 в 15:58.
Hugo121 вне форума Ответить с цитированием
Старый 26.09.2011, 16:04   #3
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию

Спасибо!!!! малость подмарафечу и в будет зашибись))
Серёга0629 вне форума Ответить с цитированием
Старый 26.09.2011, 16:10   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это пожалуйста. Если убрать универсальность - код будет попроще, чуть короче и понятней.
А можно и нарастить - добавить суммирование ещё пары колонок, или просто подсчёт количества повторов.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.09.2011, 16:18   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот макрос, который делает именно то, что вам надо:
http://excelvba.ru/code/JoinedArray

Пример его использования для вашего файла:



Код:
Sub ПримерИспользования()
    ' отключаем обновление экрана
    Application.ScreenUpdating = False
    ' считываем массив с листа - в него попадут все заполненные строки
    Массив = Range([h3], Range("h" & Rows.Count).End(xlUp)).Resize(, 3).Value

    ' объединяем уникальные, суммируя данные в столбце 3
    arr = JoinedArray(Массив, 1, "3")

    Range("m:o").ClearContents    ' очистка содержимого столбцов
    ' заносим массив на лист, начиная с ячейки m3
    Range("m3").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
End Sub
-------------------------------------------
Надстройки и программы для поиска в Excel:
http://excelvba.ru/category/Excel/search

Надстройка для поиска на всех листах книги Excel
Надстройка для поиска в Excel с выводом результатов на новый лист
Поиск из поля на панели инструментов Excel

Последний раз редактировалось EducatedFool; 13.11.2011 в 17:24.
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2011, 16:26   #6
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию

Спасибо) щас посмотрим)
Серёга0629 вне форума Ответить с цитированием
Старый 26.09.2011, 17:31   #7
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию

Hugo121, подскажите пожалуйста, где конкретно в коде указывается в каком столбце искать строки а в каком их складовать? у меня первоначальный вид файла другой
Серёга0629 вне форума Ответить с цитированием
Старый 26.09.2011, 17:41   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
a = Selection.Value'<---------------выделяете диапазон
ReDim b(1 To UBound(a, 1), 1 To 2)
ind = UBound(a, 2)'< --------------это столбец с количеством, крайний справа в выделении, или иначе - последний
Set oDict = CreateObject("Scripting.Dictionary")
oDict.CompareMode = 1
For i = 1 To UBound(a)
    If Not IsEmpty(a(i, ind)) Then)'< --------------анализируем столбец с суммами
        If IsNumeric(a(i, ind)) Then)'< --------------анализируем столбец с суммами
        temp = Trim(a(i, 1))'< --------------анализируем столбец с уникальными
и т.д.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.09.2011, 09:41   #9
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию

Всё правильно, это я засиделся.....сам себе проблемы делаю
СПАСИБО))
Серёга0629 вне форума Ответить с цитированием
Старый 27.09.2011, 14:07   #10
Серёга0629
Форумчанин
 
Регистрация: 21.04.2011
Сообщений: 128
По умолчанию Опять не слава Богу!

в столбце L, дробные значения распознаются как текст, как с этим бороться? листинг в Module2
Вложения
Тип файла: zip Sovpad.zip (16.5 Кб, 10 просмотров)
Серёга0629 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить совпадения Михаил2261 Microsoft Office Excel 6 30.07.2010 22:14
Номер совпадения V@mpir Помощь студентам 11 22.01.2010 18:44
stringgrid,сравнение двух столбцов на совпадения и не совпадения betirsolt БД в Delphi 7 19.01.2010 15:09
Совпадения shad0w Microsoft Office Excel 3 21.08.2009 12:42
Поиск по имени столбца и сложение строки по найденным столбцам mihakr Microsoft Office Excel 2 12.03.2009 13:35