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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 19:22   #1
Badass
Новичок
Джуниор
 
Регистрация: 09.11.2010
Сообщений: 5
Вопрос макрос для сложения строчек с одинаковыми "заголовками"

толкните на мысль.
Код:
If a = Cells(b, 1) Then 'как сделать чтобы после сравнения значений первого столбца , значения второго столбца складывались и куда нибудь выносились

Последний раз редактировалось Badass; 09.11.2010 в 19:49.
Badass вне форума Ответить с цитированием
Старый 09.11.2010, 19:49   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

попробую угадать:
Код:
сумма = 0
for r = 1 to cells(r,1).end(xldown).row
  if a = cells(r,1) then сумма = сумма + cells(r,2)
next
msgbox "Сумма = " & сумма
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.11.2010, 20:11   #3
Badass
Новичок
Джуниор
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
попробую угадать:
Код:
сумма = 0
for r = 1 to cells(r,1).end(xldown).row
  if a = cells(r,1) then сумма = сумма + cells(r,2)
next
msgbox "Сумма = " & сумма
во вложении пример таблицы, отталкиваюсь от сравнения строк, если строки равны , то вторые столбцы (B) этих строк должны сложиться и вынестись куда нибудь..например

Итог за лето:
Иванов 11794
Петров 10004
Вложения
Тип файла: zip test34.zip (7.9 Кб, 22 просмотров)

Последний раз редактировалось Badass; 09.11.2010 в 21:52.
Badass вне форума Ответить с цитированием
Старый 09.11.2010, 23:20   #4
Badass
Новичок
Джуниор
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

Код:
a = Cells(1, 1)
For nmb = 3 To 150000
If a = Cells(b, 1) Then

если будут совпадения фамилий, то сложить эти ячейки с зарплатой между собой и итог вынести по этой фамилии , даже если будет 3 и более совпадений фамилий, как мне поймать эти ячйки?
Badass вне форума Ответить с цитированием
Старый 10.11.2010, 00:01   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цикл по массиву и создание коллекции или словаря уникальных фамилий, одновременно в Item суммируя суммы.
Вот, переделал другой код.
Вложения
Тип файла: zip test34.zip (14.1 Кб, 33 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 10.11.2010 в 00:09.
Hugo121 вне форума Ответить с цитированием
Старый 10.11.2010, 00:03   #6
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
For nmb = 3 To 150000
Если таблица такая большая, попробуйте так (см. файл).
Вложения
Тип файла: zip test34з-пл.zip (13.8 Кб, 39 просмотров)
nilem вне форума Ответить с цитированием
Старый 10.11.2010, 00:25   #7
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Может достаточно будет стандартных средств Экселя?
Вложения
Тип файла: zip test34.zip (6.3 Кб, 40 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 10.11.2010, 23:40   #8
Badass
Новичок
Джуниор
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Цикл по массиву и создание коллекции или словаря уникальных фамилий, одновременно в Item суммируя суммы.
Вот, переделал другой код.
работает супер, но к объектам я еще не совсем готов..

Цитата:
Сообщение от nilem Посмотреть сообщение
Если таблица такая большая, попробуйте так (см. файл).
спасибо помогло, а можете закоментировать строки, а то не все довольно понятно

Цитата:
Сообщение от EugeneS Посмотреть сообщение
Может достаточно будет стандартных средств Экселя?
прошу прощения, но я и сам бы наверно предпочел фильтры, но способ реализации выбирал не я.
Badass вне форума Ответить с цитированием
Старый 11.11.2010, 22:16   #9
Badass
Новичок
Джуниор
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

2nilem, здраствуйте, можете все таки поянить в вашем макросе работу инструкции with с переменными, с определения числа символов в объекте. Я знаю волшебное слово - пожалуйста
Badass вне форума Ответить с цитированием
Старый 12.11.2010, 00:29   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

И чего Вы так словаря испугались?
Мне кажется, что на нём код проще получился, чем на коллекции.
Всего-то одно условие, которое вероятно и объяснять-то не надо:
Код:
        If Not oDict.Exists(Temp) Then
            oDict.Add Temp, CStr(a(i, 2))
        Else
            oDict.Item(Temp) = CStr(--oDict.Item(Temp) + a(i, 2))
        End If
Если нет в словаре - заносим вместе с значением, если есть - плюсуем к занесённому значению текущее.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
EXCEL.VBA. Макрос "точной" копии документа xАлексейx Фриланс 5 12.07.2010 22:17
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04